C 高階 七 多型性6

2021-10-09 11:01:25 字數 508 閱讀 1036

//8_6.cpp

#include using namespace std;

class base1 ;

class base2: public base1 ;

void base2::display() const

class derived: public base2 ;

void derived::display() const

void fun(base1 *ptr)

int main()

final表示該虛函式不能被重寫,override表示該函式重寫了某個虛函式

下列程式就僅僅因為疏忽漏寫了const,導致多型行為沒有如期進行

- c++11 引入顯式函式覆蓋,在編譯期而非執行期捕獲此類錯誤。 - 在虛函式顯式過載中運用,編譯器會檢查基類是否存在一虛函式,與派生類中帶有宣告override的虛函式,有相同的函式簽名(signature);若不存在,則會回報錯誤。

C 高階 七 多型性2

運算子過載是針對新型別資料的實際需要,對原有運算子進行適當的改造。例如 過載為類的非靜態成員函式 過載為非成員函式。函式型別 operator 運算子 形參 引數個數 原運算元個數 1 後置 除外 規則 運算元 源 include using namespace std class complex ...

C 高階 七 多型性3

有些運算子不能過載為成員函式,例如二元運算子的左運算元不是物件,或者是不能由我們過載運算子的物件 表示式oprd1 b oprd2 等同於operator b oprd1,oprd2 表示式 b oprd 等同於operator b oprd 表示式 oprd b 等同於operator b opr...

C 入門高階之6 多型性

1.多型是指同樣的訊息被不同型別的物件接收時導致不同的行為,訊息是指對類的成員函式的呼叫。2.多型的型別 過載多型,強制多型,包含多型和引數多型。3.多型的實現 分為編譯時的多型和執行時的多型 4.運算子過載 對已有的運算子賦予多重含義,使得同乙個運算子作用於不同型別資料時,導致不同的行為。5.運算...