WinMain与应用程序类之间的联系

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;
}

 

posted @ 2012-07-30 10:52  Ebel  阅读(211)  评论(0编辑  收藏  举报