/*
在CLoad类中定义了外部函数OnLoad的指针TEvent,在内部定义了Load函数,当TEvent不为空时,将调用外部函数
*/
#include<iostream>
#include<string.h>
class CLoad;
typedef void (*TEvent)(CLoad *e);
class CLoad
{
private:
char fileName[10];
public:
TEvent onLoad;
void Load(char *FileName)
{
strcpy(fileName,FileName);
std::cout<<"执行内部载入操作"<<std::endl;
if(onLoad != NULL)
{
onLoad(this);
}
}
char* getFileName()
{
return fileName;
}
};
void OnLoad(CLoad *e)
{
std::cout<<"执行外部事件,加载文件:"<<e->getFileName()<<std::endl;
}
int main(int argc,char* argv)
{
CLoad ld;
ld.onLoad = OnLoad;
ld.Load("c:\\123.txt");
return 0;
}
C++ - 类中实现事件
于 2019-09-12 16:14:06 首次发布