子類物件位址可以賦值給父類指標,可以通過父類指標呼叫與子類函式名和參數列相同的虛函式,在程式執行時,當父類指標指向父類物件的位址時則呼叫父類的虛函式,當父類的指標指向子類物件的位址時呼叫子類的虛函式,讓同一條函式語句呼叫達成不同的結果。
比如學校發通知元旦班級要有人去表演,同學a可以代表我們班去表演,同學b也可以,也可以整個班一起上去表演,**和結果如下。
#include
#include
class myclass {
public:
virtual void play() {
std::cout << "全班同學一起表演" << std::endl;
class studenta : public myclass {
public:
virtual void play() {
std::cout << "同學a表演" << std::endl;
class studentb : public myclass {
public:
virtual void play() {
std::cout << "同學b表演" << std::endl;
void whoplay(myclass &c) {
c.play();
int main() {
myclass c, *pc;
studenta a;
studentb b;
// 全班一起去表演
pc = &c;
pc->play();
// 同學代表班級a去表演
pc = &a;
pc->play();
// 同學代表班級b去表演
物件導向 理解多型
一 多型的概念 多型通俗來說,就是多種形態,完成某個行為,當不同的物件去完成某個行為時會產生不同的狀態。二 多型的定義及實現 1 多型定義的構成條件 多型是在不同繼承關係的類物件,去呼叫同一函式,產生了不同行為。例如在火車站買票時,學生和 分別去買票,學生買的是半價票,買的是全價票。同樣是買票,但是...
物件導向的多型
多型 1.必須要存在繼承關係 2.存在方法的重寫 不是必須,但是不重寫沒有意義 動物 d new 貓 動物 d new 狗 3.父類要指向之類的引用 父 f new 子 多型的注意事項 1.多型成員訪問的特點 fu f new zi 左邊為父類 右邊為子類 1 成員變數 編譯看左邊,執行看左邊 2 ...
鴨子型別 物件導向多型的理解
在程式設計中,鴨子型別 duck typing 是動態型別的一種風格。鴨子型別的核心概念在於乙個物件的有效語義,不是繼承自特定的類或者實現特定的方法,而是由當前的屬性和方法集合決定的。鴨子型別 可以這樣表述 乙隻鳥走起來像鴨子 游泳起來像鴨子 叫起來也像鴨子,那麼這只鳥可以被稱為鴨子 在鴨子型別中,...