數據類型綁定時機問題探究

最近在學習C++對象模型的相關知識,其中遇到了數據類型綁定時機不同,造成結果不同,特此記錄一下。直接貼代碼:

typedef   char*   mytype;

Class  A{

public:

   void funca(mytype my){  ///////-------------->mytype 爲char* 全局變量

       mytype  myvalue ; /////////--------->mytype爲int 成員類型

  }

   void funcb(mytype my);    ///////-------------->mytype 爲char* 全局變量

  typedef int mytype;

};

void A::funcb(mytype my){    --------->mytype爲int 成員類型   

       return ;

}

此時funcb會報錯,“int A::funb(A::mytype)”:“A”中沒有找到重載的成員函數“  。這裏主要是成員函數的解析是在類全部定義完成後纔會進行,在函數定義時的mytype 只能是全局類型,不同的是funcb ,類外的funcb函數中 ,mytype是類全部定義後後的int類型,因此會出現沒有找到重載函數的情況。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章