基類指標在程式執行的時候的確指向的是乙個派生類的物件,但指標的型別仍然是基類指標。c++是一種強型別語言,因此不能用基類指標型別的指標直接呼叫派生類;而且,同乙個類可能有多種不同的派生類,因此不知道實際指向的會是哪個派生類。如果確信是某個派生類的話,可以用這樣的方法來呼叫:
((cb*)this)->b = 1; (cb為派生類)
或者(dynamic_cast
(this))->b = 1;
即首先進行一次指標的強制型別轉換。
注意如果在建構函式中的話,cb的部分現在還是沒有初始化的,因此即使讀出b的資料,也不會是2。因為按照c++的標準,建構函式執行的順序是從基類到派生類。
return *this; 過載 = -= =等運算子時一般返回*this
return this; 指向物件本身的指標
基類和派生類
include include using namespace std class animal class dog public animal class dog public animal這裡的 就是繼承或派生,class cat public animal class item base st...
C 基類和派生類
本講討論基類和派生類的基本概念。通過繼承機制,可以利用已有的資料型別來定義新的資料型別。所定義的新的資料型別不僅擁有新定義的成員,而且還同時擁有舊的成員。我們稱已存在的用來派生新類的類為基類,又稱為父類。由已存在的類派生出的新類稱為派生類,又稱為子類。在c 語言中,乙個派生類可以從乙個基類派生,也可...
C 基類和派生類
本講討論基類和派生類的基本概念。通過繼承機制,可以利用已有的資料型別來定義新的資料型別。所定義的新的資料型別不僅擁有新定義的成員,而且還同時擁有舊的成員。我們稱已存在的用來派生新類的類為基類,又稱為父類。由已存在的類派生出的新類稱為派生類,又稱為子類。在 c 語言中,乙個派生類可以從乙個基類派生,也...