習題(c 期末知識複習5 )

2021-10-07 19:06:54 字數 1016 閱讀 5392

在派生類中重新定義基類中的虛函式,是函式過載的另一種形式。

但虛函式與一般過載函式有區別,具體區別在於:

(1) 過載函式的呼叫是以所傳遞引數序列的差別作為呼叫不同函式的依據;而虛函式是根據物件的不同去呼叫不同類的虛函式。

(2) 過載函式在編譯時表現出多型性,是靜態聯編;虛函式則在執行時表現出多型性,是動態聯編。

**(

3) 建構函式可以過載,析構函式不能過載;正好相反,建構函式不能定義為虛函式,

析構函式能定義為虛函式。(4

) 過載函式只要求函式有相同的函式名,並且過載函式是在相同作用域中定義的名字相同的不同函式;

而虛函式不僅要求函式名相同,而且要求函式的簽名、返回型別也相同。(5

) 過載函式可以是成員函式或友元函式;而虛函式只能是非靜態成員函式。

**

純虛函式是一種特殊的虛函式,它是被標明為不具體實現的虛函式,從語法上講,純虛函式是在虛函式的後面加上「=0」,表示該虛函式無函式體,

這裡的「=」並非賦值運算。

在乙個類中如果虛函式不可能實現的太具體,則可以定義為純虛函式。

純虛函式為類的繼承提供了連續的介面。

如果乙個類中至少有乙個純虛函式,則這個類為抽象類。

如果派生類中沒有再對基類中的純虛函式進行重定義,則派生類也是抽象類。

不能定義抽象類的物件,但可以定義抽象類的指標和引用。

class abc

;class x: public abc};

class y: public abc

;abc a1;

//error

x x1;

// √ 因為x重定義了open() 函式

y y1;

//error

虛函式的實現

void

func

(shape &p)

//形參為基類的引用

intmain()

習題(c 期末知識複習4 )

1.常函式成員 常資料成員 const位於函式宣告後面,宣告和定義時都要加 進行函式呼叫時不能加const 常物件只能呼叫常函式成員 const成員函式既可引用const資料,也可引用非const資料,但都不能改變值。const函式成員不能訪問非const函式成員。非const函式成員可引用cons...

c語言期末複習題

參考 k r 1 單詞計數 include define in 1 define out 0main 可以用集合裡的vn圖理解,每次迴圈都有三種情況。printf d n nword 2 統計數字 空白符及其他字元 includemain printf digits for i 0 i 10 i p...

C 期末複習

首先,友元是一種定義在類外部的普通函式或類,但它需要在類體內進行說明,為了與該類的成員函式加以區別,在說明時前面加以關鍵字friend。友元不是成員函式,但是它可以訪問類中的私有成員。所以,友元宣告只能出現在類定義中。因為友元不是授權類的成員,所以它不受其所在類的宣告區域public private...