C 入門高階之6 多型性

2021-06-09 19:34:28 字數 854 閱讀 6479

1. 多型是指同樣的訊息被不同型別的物件接收時導致不同的行為,訊息是指對類的成員函式的呼叫。

2. 多型的型別: 過載多型,強制多型,包含多型和引數多型。

3.多型的實現: 分為編譯時的多型和執行時的多型

4. 運算子過載:對已有的運算子賦予多重含義,使得同乙個運算子作用於不同型別資料時,導致不同的行為。

5. 運算子過載的規則: a. 除了少數幾個外,其他的c++中已有的運算子都可以過載 

b. 過載之後的運算子和優先順序保持不變

c. 運算子的過載是針對新型別的資料實際需要,對原有運算子進行適當的改造。

6. 運算子過載兩種形式:過載為類的成員函式和過載為類的友元函式。

函式型別 operator  運算子(形參表) {

} 7. 虛函式: 虛函式是動態繫結的基礎。必須是非靜態成員函式,經過派生之後,在類族中就可以實現執行過程中的多型。

8. 虛函式成員:只能出現在類宣告中的函式原型宣告中。

9.虛析構函式: 在c++中,不能宣告虛建構函式,但是可以宣告虛析構函式。   如果乙個類的析構函式是虛函式,那麼由它派生而來的所有子類的析構函式也是虛函式。

析構函式設定為虛函式後,在使用指標引用時,可以動態繫結,實現執行時的多型,保證基類型別的指標就能夠呼叫適當的析構函式針對不同物件進行清理工作。

10. 純虛函式: 純虛函式是乙個在基類中宣告的虛函式,它在該基類中沒有定義具體的操作內容,要求各派生類根據實際需要定義自己的版本。 

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

宣告為純虛函式後,基類中就不再給出函式的實現部分。

11.  抽象類 : 帶有純虛函式的類就是抽象類。 抽象類不能被例項化。

C 高階 七 多型性6

8 6.cpp include using namespace std class base1 class base2 public base1 void base2 display const class derived public base2 void derived display cons...

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...