虛函式與多型總結

2021-08-20 22:45:40 字數 1877 閱讀 7886

虛函式與多型性

1.多型性是指乙個名字,多種語義;或介面相同,多種實現。

2.過載函式是多型性的一種簡單形式。

3.虛函式允許函式呼叫與函式體的聯絡在進行時才進行,成為多型聯編。

5.實現執行時多型的關鍵首先是要說明虛函式,另外,必須用基類指標呼叫派生類的不同實現版本

基類指標雖然獲取派生類物件位址,卻只能訪問派生類從基類繼承的成員

注意:1.乙個虛函式,在派生類層介面相同的過載函式都保持虛特性

2.虛函式必須是類的成員函式

3.不能將友元說明為虛函式,但虛函式可以是另乙個類的友元

4.析構函式可以是虛函式,但建構函式不能是虛函式

5.在派生類中過載基類的虛函式要求函式名、返回型別、引數個數、引數型別和順序完全相同

6.如果僅僅返回型別不同,c++認為是錯誤過載

7.如果函式原型不同,僅函式名相同,丟失虛特性

虛析構函式

1.建構函式不能是虛函式。建立乙個派生類的物件時,必須從類的層次的根開始,沿著繼承路徑逐個呼叫基類的建構函式

2.析構函式可以是虛的。虛析構函式用於指引delete運算子正確析構動態物件

說明:1.派生類應該從它的基類公有派生。

2.必須首先在基類中定義虛函式。

3.派生類對基類中宣告虛函式重新定義時,關鍵字virtual可以不寫

4.一般通過基類指標訪問虛函式時才能體現多型性

5.乙個虛函式無論被繼承多少次,保持其虛函式特性

6.虛函式必須是其所在類的成員函式,而不是友元函式,也不能是友元函式,也不能是靜態函式

7.建構函式、內聯成員函式、靜態成員函式不能是虛函式(虛函式不能以內聯的方式進行處理)

8.析構函式可以是虛函式,通常宣告為虛函式

純虛函式和抽象類

1.純虛函式是乙個在基類中說明的虛函式,在基類中沒有定義,要求任何派生類都定義自己的版本

2.純虛函式為各派生類提供乙個公公介面

3.純虛函式說明形式;

virtual 型別 函式名(參數列)=0;

4.乙個具有純虛函式的基類稱為抽象類

#includeusing namespace std ;

class number

virtual void show() = 0 ;

protected: int val ;

};class hex_type : public number

void show()

};class dec_type : public number

void show()

};class oct_type : public number

void show()

};

void fun( number & n )	// 抽象類的引用引數

int main()

虛函式與多型總結

多型性 polymorphism 是指乙個名字,多種語義 或介面相同,多種實現。過載函式是多型性的一種簡單形式。虛函式允許函式呼叫與函式體的聯絡在執行時才進行,稱為動態聯編。冠以關鍵字 virtual 的成員函式稱為虛函式實現執行時多型的關鍵首先是要說明虛函式,另外,必須用。基類指標呼叫派生類的不同...

多型與虛函式總結

多型性 polymorphism 是指乙個名字,多種語義 或介面相同,多種實現。過載函式是多型性的一種簡單形式。虛函式允許函式呼叫與函式體的聯絡在執行時才進行,稱為動態聯編。冠以關鍵字 virtual 的成員函式稱為虛函式 實現執行時多型的關鍵首先是要說明虛函式,另外,必須用 基類指標呼叫派生類的不...

虛函式與多型總結

基礎知識 多型性定義 多型性只乙個名字多種語義 或者是在相同的介面中,多種實現 過載函式即為多型性的一種簡單形式 虛函式允許函式呼叫與函式體的聯絡在執行時才進行,成為動態聯遍 虛函式和動態聯遍 冠以關鍵字virtual的成員函式稱為虛函式 實現執行時多型的關鍵首先是要說明虛函式,另外,必須用基類指標...