在该书的那页有以下代码:
//之前有一些仿MFC类的定义代码CMyWinApp theApp;
viod main()
{
CWinApp* pApp = AfxGetApp();
//....
}然而我对后面紧跟的一段话似乎有些不解,“其中pApp指向theApp全局对象”,这里pApp的类型明明是CWinApp,他怎么就说pApp指向的是theApp呢?请各位帮忙解释一下:

解决方案 »

  1.   

    pApp 是CWinApp类型指针
    *pApp的值就是theApp
      

  2.   

    CWinApp* pApp = AfxGetApp(); // pApph好明显是定义为一个CWinApp的指针了AfxGetApp();  获取的就是theApp全局对象的指针综上所述,"其中pApp指向theApp全局对象" 这句话成立
      

  3.   

    AfxGetApp(); 返回的就是theApp
      

  4.   

    这就是C++的神奇之处了,CMyWinApp派生自CWinApp,故这里呢,CWinApp可以称之为基类指针。
    换言之,它能够指向任何从它派生的类的结构地址。
    所以说呢,这里的pApp指向的就是theApp。
    ~_~
      

  5.   

    汗, 说反了, CWinApp是CMyWinApp的基类
      

  6.   

    CMyWinApp是CWinApp的子类,c++里是可以用父类类型的指针接收一个子类对象的地址的。不然多态就无从谈起了
      

  7.   

    额。。请看下面的代码//CWinApp类的部分定义
    class CWinApp : public CWinThread
    {
       public:
          CWinApp* m_pCurrentWinApp;
       public:
         //...
         m_pCurrentWinApp = this;//这里的this指针应该
                                                               //是指向CWinApp的对象吧?
        //...
    };//...//全局函数AfxGetApp
    CWinApp* AfxGetApp()
    {
      return theApp.m_pCurrentWinApp;//这里的m_pCurrentWinApp应该是
                                                                    //CMyWinApp从CWinApp继承而来的
                                                                    //成员变量,和基类的
                                                                    // m_pCurrentWinAmp无关吧,
                                                               //但是好像此变量没有被初始化哦,
                                                               //哪儿来的值呢?

    }我就是这个问题有点昏
      

  8.   

    CMyWinApp是从CWinApp派生的,父类CWinApp指针可以指向子类CMyWinApp