一、 繼承
1 如果你以乙個「基類指標」指向「派生類物件」,那麼經由該指標你只能呼叫基類所定義的函式
2 如果你以乙個「派生類指標」指向乙個「基類指標」 你必須先做明顯的轉型操作。
3 如果基類和派生類都定義了相同名稱的成員函式, 那麼通過物件指標呼叫成員函式是,到底呼叫到那乙個函式,必須視該指標的原始型別而定。
二、虛函式
1 解決多型
2 將介面和實現分開
3 基類和子類有許多共性時,便於基類統一的管理子類
4 虛函式正是為了對 如果以乙個基類指標指向乙個派生類物件,那麼通過該指標就只能呼叫基類所定義的成員函式 這條規則反其道而行設計的
a 如果期望派生類重新定義乙個成員函式,那麼你應該在基類中把次函式設為virtual
b 以單一指令呼叫不同的函式,這種性質成為多型polymorphism
c 虛函式是c++ 語言的多型性質以及動繫結的關鍵
d 既然抽象類中的虛函式不打算被呼叫,我們就不應該定義他,應該把他設為純虛函式(在宣告之後加上「=0」 即可)
e 我們可以說擁有純虛函式者為抽象類,以別於所謂的具體類
f 抽象類不能產生出物件例項, 但是我們可以擁有指向抽象類的指標,以便於操作各個抽象類的派生類
g虛函式派生下去仍為虛函式, 而且可以忽略virtual關鍵字
純虛函式不需要定義其實際操作,他的存在只是為了在派生類中被重新定義,只是為了提供乙個多型介面。
靜態成員變數static 不屬於物件的一部分,而屬於類的一部分,所以程式可以在還沒有誕生物件之前就處理此種成員變數,但首先必須初始化他。
static成員函式沒有 this 引數著這種性質,不需要借助任何物件就可以被呼叫
C 繼承 多型 虛函式
c 支援多繼承 class parent class parent2 class child public parent,private parent2公有繼承和私有繼承的區別 public parent 公有繼承,private和public都會繼承 private parent 私有繼承,只繼承...
C 虛函式和多型繼承
指標和引用是很好理解的,變數的引用相當於給變數取了個別名,在函式呼叫時,傳引用是會將引數列表的值改變的。include using namespace std int main 最終輸出的結果都是0x7ffdd9aff7b4,即為記憶體中儲存整型變數m的位址。對於虛函式,它是實現多型公有繼承的關鍵。...
C 多型 虛函式 純虛函式和抽象函式
多型 虛函式 純虛函式和抽象函式 多型按字面的意思就是多種形態。當類之間存在層次結構,並且類之間是通過繼承關聯時,就會用到多型。c 多型意味著呼叫成員函式時,會根據呼叫函式的物件的型別來執行不同的函式。其主要是函式的多種形態 乙個函式實現多種功能,形式是乙個乙個覆蓋。例項如下 includeusin...