c++再記

c++報錯:
  cannot call member function “virtual void A:: initialize()”without object
  例題:16.1 還是困惑
  https://www.xuebuyuan.com/944681.html

2.在我們使用初始化列表進行初始化時,要注意一個特性,它是關於C++初始化類成員的。它們是按照聲明的順序初始化的,而不是按照出現在初始化列表中的順序。

例如:
class CMyClass { 

CMyClass(int x, int y); 

int m_x; 

int m_y; 
}; 

CMyClass::CMyClass(int i) : m_y(i), m_x(m_y) 
{ 

} 
你可能以爲上面的代碼將會首先做m_y=I,然後做m_x=m_y,最後它們有相同的值。但是編譯器先初始化m_x,然後是m_y,,因爲它們是按這樣的順序聲明的。結果是m_x將有一個不可預測的值。

***

## 3.派生類的成員函數如何訪問基類的構造函數 例題16.4

***
因爲不能
爲什麼不能通過對象調用構造函數
打個比方,對象是個人的話,構造函數就是這個人的產生過程:或取資源,按照定義方式生長
而通過對象調用構造函數大概就是人已經出生了再進行一次出生前的過程了 
構造函數不可以直接調用,這裏的直接調用指的是像普通的成員函數那樣調用
必須通過new運算符在創建對象時纔會自動調用;而一般的方法是在程序執行到它的時候被調用的;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章