C++类模板 简单示例

  • 头文件
#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;
}


运行结果:
在这里插入图片描述


  • tip:等有时间 实现一个定时器–唉
发布了365 篇原创文章 · 获赞 80 · 访问量 35万+

猜你喜欢

转载自blog.csdn.net/Giser_D/article/details/103745090