繼承,基類指標指向子類物件

2021-08-21 03:06:53 字數 598 閱讀 7207

#include #include using namespace::std;

class a

;a::~a()

class b :public a

~b();

void update()

void print()

};b::~b()

class c :public a

~c();

void update()

void print()

};c::~c()

class d :public c

~d();

void update()

void print()

};d::~d()

int main()

a *ba = new b;

ba->update();

system("pause");

return 0;

}

繼承關係,運用基類指標指向子類物件,可以用在觀察者模式,將基類指標儲存的子類物件的容器便利,傳送給所有的子類物件。

運用很廣,有待發現運用,重點!!!!!

基類指標指向子類物件時的函式呼叫判斷

以下用來學習基類指標指向子類物件時的情況 即base pb new derived 分析其建立過程 1.new乙個子類物件,為其生成乙個指向該種子類虛函式表vtable的指標vptr,指向derived func 2.建立乙個基類指標指向它,基類沒有的成員變數將無法通過該指標解引用後呼叫,但vptr...

c 父類指標指向子類物件

父類子類指標函式呼叫注意事項 1,如果以乙個基礎類指標指向乙個衍生類物件 派生類物件 那麼經由該指標只能訪問基礎類定義的函式 靜態聯翩 2,如果以乙個衍生類指標指向乙個基礎類物件,必須先做強制轉型動作 explicit cast 這種做法很危險,也不符合生活習慣,在程式設計上也會給程式設計師帶來困擾...

父類指標指向子類物件問題

子類與父類指標呼叫相關注意事項 1,如果以乙個基礎類指標指向乙個衍生類物件 派生類物件 那麼經由該指標只能訪問基礎類定義的函式 靜態聯翩 2,如果以乙個衍生類指標指向乙個基礎類物件,必須先做強制轉型動作 explicit cast 這種做法很危險,也不符合生活習慣,在程式設計上也會給程式設計師帶來困...