1. c++ 中的多型,簡單來說是用基類的指標指向子類的物件,然後用這個基類指標就可以呼叫子類物件的方法(這些方法在基類中有,且被宣告為虛函式);如果乙個方法沒有被宣告為虛函式,則呼叫哪個方法取決於指標的型別。
2. 這是自己寫的乙個例子
class apublic:
virtual void say()
class b:public: a
public:
void say()
int main
a* a_ptr = new b();
a_ptr->say();------>b
a_ptr->a::say(); ------->a
b b;
b* b_ptr = new b();
b_ptr->say();---->b
((a*)b_ptr)->say(); ----->b
((a*)(&b))->say(); ----->b
((a)b).say(); ------>a
總結:通過指向派生類的基類指標訪問函式,無論如何,只有a_ptr->a::say()能訪問到基類函式。
但是可以通過(a)b型別強制轉換,訪問基類的函式。
通過指標訪問函式時:
1>不加virtual ,訪問哪個取決於指標的型別
2>函式加了virtual ,訪問取決於指標所指向的物件的型別。
對多型的一些理解
相信許多小夥伴初次學習多型都是一臉懵逼,不知道在講什麼。在這裡我將把自己對多型的理解分享給大家。本人口述能力有限,在這裡用 來解釋多型 class person 這是乙個父類person,有乙個屬性name和乙個方法eat 再寫乙個子類student,如下 class student extends...
關於C 多型的一些概念和理解
概括 乙個介面,多種方法 程式在執行時才決定呼叫的函式 實現 通過虛函式實現,虛函式允許子類重新定義成員函式,而子類重新定義父類的做法成為遮蔽或重寫 重寫分為兩種,重寫成員函式和重寫虛函式,只有重寫虛函式才能體現c 的多型 而過載並沒有體現多型性 這裡簡單概括下過載 過載允許允許多個同名的函式,而這...
C 關於多型的一些總結
多型按字面的意思就是多種形態。當類之間存在層次結構,並且類之間是通過繼承關聯時,就會用到多型。c 多型意味著呼叫成員函式時,會根據呼叫函式的物件的型別來執行不同的函式。1 什麼是多型 2 多型有什麼用 3 多型的原理是什麼 4 如何實現多型 5 c 的純虛函式 2 多型是物件導向的重要技術之一,它是...