请教CALLBACK的问题,c++高手请进

2024-11-27 17:48:33
推荐回答(1个)
回答1:

CALLBACK只不过是MFC的一个标识符起到辅助说明通常没什么实际意义,回叫取决于设计意图与CALLBACK无关.

回叫调用首先要学习函数指针
以你的例子为例
void CALLBACK A();
定义为函数指针后应该是
void (*pFun)();
为指针赋值
pFun = &A;
在B里你需要现实的调用A,B如果要回叫,那么需要传入A指针为参数
B(&A);
接下来
void B(void (*pFun)())
{
pFun();// A被调用
}
问题3
函数都是在栈上分配内存,执行完后自动就析构了,成员函数不会常驻内存.调用才会分配内存
----------------------------------------------
实例化的方式决定了是否会常驻内存
class A
{
}
A b; //在栈上申请,栈退出就自动析构(函数退出变量就没了)
A *b = new A;//在堆上申请,客户程序自己控制是否常驻.(如果你不删除就是常驻)
类实例化后,其成员也加入内存了.析构成员也就没了.