下面是第3章 关键技术仿真的第二个例子
//------------------------------------------------------------------
// main
//------------------------------------------------------------------
void main()
{CWinApp* pApp = AfxGetApp();pApp->InitApplication();
pApp->InitInstance();
pApp->Run();//其中pApp指向theApp全局对象
}
//-----书上说
pApp->InitApplication();调用的是CWinApp::InitApplication
pApp->InitInstance();调用的是CMyWinApp::InitInstance(因为CMyWinApp改写了他)
pApp->Run();//调用的是CWinAPP::Run
这是为什么啊?为什么因为被改写就是调用的派生类的函数呢?
//------------------------------------------------------------------
// main
//------------------------------------------------------------------
void main()
{CWinApp* pApp = AfxGetApp();pApp->InitApplication();
pApp->InitInstance();
pApp->Run();//其中pApp指向theApp全局对象
}
//-----书上说
pApp->InitApplication();调用的是CWinApp::InitApplication
pApp->InitInstance();调用的是CMyWinApp::InitInstance(因为CMyWinApp改写了他)
pApp->Run();//调用的是CWinAPP::Run
这是为什么啊?为什么因为被改写就是调用的派生类的函数呢?
这是多态的问题,看看C++的书吧
说明你没有把《MFC深入浅出》的C++几大关键技术看明白,再重头看一遍吧。
如果上式成立根据虚拟函数的规则则InitInstance是调用的CMyWinApp的!
我一直认为《MFC深入浅出》不适合初学使用,很多东西会把人搞糊涂了。偶到现在都一直没买,虽然VC已经搞了四年了