1、在应用程序app类里面定义了全局对象theApp代表应用程序本身,在WinMain调用之前会被初始化。
2、app的基类CWinApp构造函数里面将app类的指针存储(根据多态性原理CWinApp里面的this为派生类的指针,测试代码如下),完成初始化之后应用程序有了内存空间。
3、WinMain返回AfxWinMian,在AfxWinMian里面调用AfxGetApp获取应用程序指针,完成应用程序初始化和消息循环
#include "stdafx.h" #include <iostream> using namespace std; class base; base *pB; class base { public: base(); virtual void trace(); }; base::base() { pB = this; } void base::trace() { cout << "This is base! "<<endl; } class child: public base { public: child(); virtual void trace(); }; child::child() { } void child::trace() { cout << "This is child!"<<endl; } int main(int argc, char* argv[]) { child ch; if(pB) { pB -> trace(); } return 0; }