那些函式可以設為虛函式,那些函式不可以?

2021-08-21 17:42:35 字數 423 閱讀 6028

c++中的虛函式的作用主要是實現了多型的機制,關於多型,簡而言之就是用父型別別的指標指向其子類的例項,然後通過父類的指標呼叫實際子類的成員函式。

2、必須依賴物件呼叫

可以設定為虛函式的:

析構函式  普通的成員函式

不可以設定為虛函式的:

普通函式:與類無關,連物件都不存在,物件不存在實現多型是不可能的。普通函式只能被overload,不能被override

構造:先構造,才生成物件;建構函式設定為虛函式時,物件還沒有生成,所以不可以設定為虛函式。

static修飾的成員方法:不依賴 物件呼叫

.友員函式:友員函式不是類的成員函式,c++不支援友員被繼承,所以不能為virtual。

注意:空指標不能呼叫虛函式,因為虛指標在建立物件時建立,沒有建立物件就沒有虛指標,那麼用空指標呼叫虛函式就會崩潰!

C 函式中那些不可以被宣告為虛函式的函式

常見的不不能宣告為虛函式的有 普通函式 非成員函式 靜態成員函式 內聯成員函式 建構函式 友元函式。1 為什麼c 不支援普通函式為虛函式?普通函式 非成員函式 只能被overload,不能被override,宣告為虛函式也沒有什麼意思,因此編譯器會在編譯時邦定函式。2 為什麼c 不支援建構函式為虛函...

C 函式中那些不可以被宣告為虛函式的函式

1 頂層函式 普通函式 多型的執行期行為體現在虛函式上,虛函式通過繼承方式來體現出多型作用,頂層函式不屬於成員函式,是不能被繼承的。2 建構函式 1 建構函式不能被繼承,因而不能宣告為virtual函式。2 反證法 呼叫建構函式後才能生成乙個物件。假設建構函式是虛函式,那麼它存在於虛函式表中,那麼建...

那些函式們

abs number 返回指定數的絕對值 bytes string,encoding errors 對指定的字串進行編碼,並以指定的方式處理錯誤 cmath.sqrt number 返回平方根 可用於負數 float object 將字串或數字轉換為浮點數 help object 提供互動式幫助 i...