CWinApp::CWinApp(LPCTSTR lpszAppName){    if (lpszAppName != NULL)        m_pszAppName = _tcsdup(lpszAppName);    else        m_pszAppName = NULL;     // initialize CWinThread state    AFX_MODULE_STATE* pModuleState = _AFX_CMDTARGET_GETSTATE();    AFX_MODULE_THREAD_STATE* pThreadState = pModuleState->m_thread;    ASSERT(AfxGetThread() == NULL);    pThreadState->m_pCurrentWinThread = this;    ASSERT(AfxGetThread() == this);    m_hThread = ::GetCurrentThread();    m_nThreadID = ::GetCurrentThreadId();     // initialize CWinApp state    ASSERT(afxCurrentWinApp == NULL); // only one CWinApp object please    pModuleState->m_pCurrentWinApp = this;    ASSERT(AfxGetApp() == this);     // in non-running state until WinMain    m_hInstance = NULL;    m_pszHelpFilePath = NULL;    m_pszProfileName = NULL;    m_pszRegistryKey = NULL;    m_pszExeName = NULL;    m_pRecentFileList = NULL;    m_pDocManager = NULL;    m_atomApp = m_atomSystemTopic = NULL;    m_lpCmdLine = NULL;    m_pCmdInfo = NULL;     // initialize wait cursor state    m_nWaitCursorCount = 0;    m_hcurWaitCursorRestore = NULL;     // initialize current printer state    m_hDevMode = NULL;    m_hDevNames = NULL;    m_nNumPreviewPages = 0;     // not specified (defaults to 1)     // initialize DAO state    m_lpfnDaoTerm = NULL;   // will be set if AfxDaoInit called     // other initialization    m_bHelpMode = FALSE;    m_nSafetyPoolSize = 512;        // default size}上述CWinApp的构造函数中有这样一句代码:pModuleState->m_pCurrentWinApp = this;根据C++继承性原理,这个this对象代表的是子类CTestApp的对象,即theApp。这是VC++深入讲解中的一段话。可是子类无法继承父类的构造函数,this只可能指向CWinApp对象,这是怎么回事呢?