关于函数指针和事件的问题!
yyfhz 2003-03-07 01:21:10 有一个类CTest,当中有一个方法exec(),在执行该方法时可能要做一些别的事情,比方说打印结果,或者是在窗口上显示计算结果,也可能会是别的事。我不想为每一种要做的事情都写一个继承类,而在写CTest的时候又实在不知道要做的事情,所以打算用一个函数指针来做。
CTest ...
{
..
public:
{
void (* OnExec)(int result) ;
int exec() {
//把计算结果放入变量 nResult
if ( OnExec!=NULL)
(*OnExec)(nResult) ;
}
}
}
//在主程序里写上
void ShowResult(int result)
{
//显示result...
}
void PrintResult(int result)
{
//打印result...
}
...
{
CTest newTest ;
newTest.OnExec= ShowResult ;
newTest.exec() ; //计算并显示结果
newTest.OnExec= PrintResult ;
newTest.exec() ; //计算并打印结果
}
运行一切正常,
但是如果ShowResult是某个类里的方法的时候就不可行了,好象不能直接访问VC的类里面的方法的地址。有谁知道应该怎么做?本人感激不尽!!!