一个简单的小测试程序(孙鑫VC视频里的)
看过视频的朋友给点意见啦,我可能描述的不太清楚!
一:孙老师说根据继承性原理,这里的this指针指向派生类的对象,
部分代码如下:(CWinApp为基类,派生一个CTestApp,并创建一个全局的派生类对象)
CWinApp::CWinApp(LPCTSTR lpszAppName)
{
AFX_MODULE_STATE* pModuleState = _AFX_CMDTARGET_GETSTATE();
AFX_MODULE_THREAD_STATE* pThreadState = pModuleState->m_thread;
ASSERT(AfxGetThread() == NULL);
pThreadState->m_pCurrentWinThread = this;
}
我的疑问是不知道这个this是如何与派生类关联的(在我看来好像毫无关系),怎么就会指向派生类的对象?
二:孙老师要我们自己做一个小测试程序:定义一个基类派生一个子类,了类实例化一个全局对象,在基类的构造函数里把this赋给基类的对象指针,在入口函数里调用基类与子类都定义好的一个函数看输出结果就能证明this指向谁了!
我想:如果定义的函数名一样的话子类的函数肯定会覆盖基类的啊,那还怎么证明?
最主要的困惑是对这个程序测试的原理不大明白,为会么this指针就会指向子类的对象?
看过孙老师教程的朋友如果谁早写出来的,麻烦帖出来看看!
先谢了,