c 中 過載,重寫,覆蓋

2021-05-28 08:25:31 字數 792 閱讀 7135

過載:作用域內,函式名相同,函式引數不同;

重寫:父類的virtual成員函式,子類重寫了函式體;

覆蓋:1.子類重寫父類函式後,將導致父類裡被重寫函式及其過載函式被覆蓋;2.子類成員函式與父類成員函式,構成過載時,將導致父類裡成員函式被覆蓋;

class p 

virtual ~p() {}

virtual void foo()        //函式1

void foo(int i)       //函式2

};class c :public p

virtual ~c() {}

void foo()                //函式3

void foo(int i)     //函式4

void foo(int i, int j)    //函式5

};

函式1和函式3是重寫;

函式1和函式2是過載,函式3,函式4和函式5是過載;

若注釋掉函式4和函式5,在類c中, 類p的 函式2被覆蓋;

class c :public p 

virtual ~c() {}

void foo() //函式3

//void foo(int i) //函式4

//void foo(int i, int j) //函式5

};c c;

c.foo(1) // 函式2被覆蓋,無法使用,編譯錯誤

C 中過載 重寫 和 覆蓋

一 過載 1 過載示意 2 發生條件 必須發生在乙個類中,函式名相同,引數型別或者個數不同構成過載,與返回型別無關。如 public class name public int getname int usercount 二 重寫 1 示意 重寫 override 指子類修改父類中某個函式的函式體,...

C 中的過載 重寫(覆蓋) 隱藏

一 過載 1 相同的範圍 在同乙個類中 2 函式名字相同 3 引數不同 4 virtual關鍵字可有可無。二 重寫 覆蓋是指派生類函式覆蓋基類函式 1 不同的範圍 分別位於派生類與基類 2 函式名字相同 3 引數相同 4 基類函式必須有virtual關鍵字。三 隱藏 隱藏 是指派生類的函式遮蔽了與其...

過載 重寫(覆蓋) 隱藏

過載 同一訪問區 如類中 內被宣告的幾個具有 不同引數列 引數的型別,個數,順序不同 的 同名函式,根據引數列表確定呼叫哪個函式,過載不關心函式返回型別。隱藏 派生類的函式 遮蔽了它繼承的 基類同名函式,注意只要同名函式,不管引數列表是否相同,基類函式都會被隱藏。重寫 覆蓋 派生類中存在 同基類中函...