• 头文件
#include "stdafx.h"
//定时器设计

enum WORK_STATE{
WORK_UNEXIST, //不存在
WORK_RUNNING, //正在运行
WORK_STOP, //已停止
};

template<typename Type>
class TimeClock{
public:
TimeClock(Type* func_t);
~TimeClock();

bool SetTimerWork(std::wstring work_name,int interval_time); //设置定时任务
WORK_STATE GetWorkState(std::wstring work_name); //获取Work状态
bool StartTask(std::wstring work_name); //启动定时任务
bool StopTask(std::wstring work_name); //停止任务
bool StartAllTask();//启动所有任务
bool StopAllTask(); //停止所有任务

private:
std::vector<std::wstring> m_vec_workname; //工作名的集合
};


class Demo{
public:
Demo();
~Demo();
void ceshi();
};

实现文件

// TimeClock.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "TimeClock.h"
using namespace std;

template<typename Type>
TimeClock<Type>::TimeClock(Type* func_t)
{
cout << "测试" << endl;
func_t->ceshi();
}

template<typename Type>
TimeClock<Type>::~TimeClock()
{

}

template<typename Type>
bool TimeClock<Type>::StartTask(std::wstring work_name)
{
return false;
}

template<typename Type>
bool TimeClock<Type>::StopTask(std::wstring work_name)
{
return false;
}

template<typename Type>
bool TimeClock<Type>::SetTimerWork(std::wstring work_name,int interval_time)
{
return true;
}

template<typename Type>
WORK_STATE TimeClock<Type>::GetWorkState(std::wstring work_name)
{
return WORK_RUNNING;
}

template<typename Type>
bool TimeClock<Type>::StartAllTask()
{
return true;
}

template<typename Type>
bool TimeClock<Type>::StopAllTask()
{

}

Demo::Demo()
{
cout << "Demo" << endl;
}

Demo::~Demo()
{

}

void Demo::ceshi()
{
cout << "dddd" << endl;

}
void demo()
{
cout << "测试" << endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
Demo mm;
TimeClock<Demo> kk(&mm);
system("pause");
return 0;
}

运行结果:

C++类模板 简单示例_应用程序


  • tip:等有时间 实现一个定时器–唉