本篇所要講解的是包含多型,由於是在繼承的基礎上實現的,所以就乾脆放在繼承和派生這一專題了
在介紹多型前,請看下面一段**
class
do**oid
speak()
};class
pi**oid
speak()
};class
catvoid
speak()
};void
display
(dog* p)
void
display
(pig* p)
void
display
(cat* p)
intmain()
執行結果
dog-
run(
)dog-
speak()
pig-
run(
)pig-
speak()
cat-
run(
)cat-
speak
()
為了解決這個問題,c++增加了虛函式,就是在父類的成員函式宣告前增加關鍵字 virtual ,用 virtual修飾的函式成為虛函式
此時改寫後的**如下
class
animal
virtual
void
speak()
};class
dog:
public animal
void
speak()
};class
pig:
public animal
void
speak()
};class
cat:
public animal
void
speak()
};void
display
(animal* p)
intmain()
執行結果
dog-
run(
)dog-
speak()
pig-
run(
)pig-
speak()
cat-
run(
)cat-
speak
()
總結 繼承與派生 虛函式和多型
繼承和派生 class csstudent void setname const string name class cundergraduate pulic cstudent 覆蓋 bool canbaoyan 派生類的寫法 類名 public 基類名cstudent printinfo 呼叫基類...
C 繼承派生和多型的知識整理
1.繼承和派生 2.虛函式和多型 3.運算子過載的理解 4.類和物件提高 一.繼承與派生 1.基本定義 繼承與派生是同乙個過程從不同的角度看 保持已有類的特性而構成新類的過程稱為繼承 在已有類的基礎上新增自己的特性而產生新類的過程稱為派生 被繼承的已有類成為基類 父類 base class 派生出的...
C 虛函式和多型繼承
指標和引用是很好理解的,變數的引用相當於給變數取了個別名,在函式呼叫時,傳引用是會將引數列表的值改變的。include using namespace std int main 最終輸出的結果都是0x7ffdd9aff7b4,即為記憶體中儲存整型變數m的位址。對於虛函式,它是實現多型公有繼承的關鍵。...