class  CWinApp:public CWinThread
{
  public:
         CWinApp* m_pCurrentWinApp;该怎么理解?当成一个成员变量,但是它的类型?难道是c++中的复合?!望高手赐教!
  public:
  CWinApp:CWinApp(){   m_pCurrentWinApp=this; 该怎么理解这个赋值?!
                       .......
}
extern  CMyWinApp  theApp;      //CMyWinApp 是CWinApp的子类
CWinApp*   AfxGetApp()          //全局函数
{
   return theApp.m_pCurrentWinApp; 其返回的是什么?}高手前辈,请助小弟一臂之力,不甚感激!!!

解决方案 »

  1.   

    CWinApp* m_pCurrentWinApp指向本类对象的指针。那个对象调用此函数,可以返回指向
    自己的指针
      

  2.   

    public:
      CWinApp:CWinApp(){   m_pCurrentWinApp=this; 该怎么理解这个赋值?!
                           .......
    }
    什么意思?
      

  3.   

    this指针表示对象自己的pointer值,建议你看看数据结构的书,一般的链表也有这样的写法,用一个指针指向自己的那种结构或对象。
      

  4.   

    m_pCurrentWinApp在类内相当于this指针,在类外相当于指向该类或子类实例的一个指针
      

  5.   

    1.C++的复合是什么意思?m_pCurrentWinApp的类型就是CWinAPP*。
    2.this指针就指向theApp,你也可以理解为this和theApp绑定在一起永不分开。这样  m_pCurrentWinApp=this就好理解了。
    3.return theApp.m_pCurrentWinApp; 其返回的是什么?返回的是
    this=&theApp=m_pCurrentWinApp,这三位一体。
      

  6.   

    CWinApp是应用程序的基类,他需要掌握和控制应用程序,而要想实现这一点,就要得到指向该应用程序的指针。
    CMyWinApp  theApp;    
    由于CMyWinApp 是CWinApp的子类,在执行上述操作时,要调用父类的构造函数,将CMyWinApp
    当前对象theApp的指针传到父类,赋值给父类的成员变量m_pCurrentWinApp