基類和派生類 this

2022-08-14 06:00:11 字數 433 閱讀 7458

基類指標在程式執行的時候的確指向的是乙個派生類的物件,但指標的型別仍然是基類指標。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 語言中,乙個派生類可以從乙個基類派生,也...