c 覆蓋 過載 隱藏 的關係

2021-07-11 00:22:50 字數 875 閱讀 7840

過載:

只有在同一類定義中的同名成員函式才存在過載關係,主要特點是函式的引數型別和數目有所不同,但不能出現函式引數的個數和型別均相同,僅僅依靠返回值型別不同來區分的函式,這和普通函式的過載是完全一致的。另外,過載和成員函式是否是虛函式無關

覆蓋:

派生類中覆蓋基類中的同名函式,要求兩個函式的引數個數、引數型別、返回型別都相同,且基類函式必須是虛函式。

隱藏:

派生類中的函式遮蔽了基類中的同名函式,

2個函式引數相同,但基類函式不是虛函式(

和覆蓋的區別在於基類函式是否是虛函式)。2個函式引數不同,無論基類函式是否是虛函式,基類函式都會被遮蔽(

和過載的區別在於兩個函式不在同一類中)。

#include using namespace std;

class a

virtual void h(int i = 1, int j = 2)

~a()

};class b :public a

void f()

void h()

void h(int i, int j = 3)//當基類中的虛函式有預設形參時,派生類中重定義基類中的虛函式的版本必須有相同數量的形參,

//形參可以有預設值,也可以沒有。如果形參數量不一樣多則是對虛函式的過載。

~b()

};int main()

c 過載 覆蓋 隱藏

成員函式的過載 覆蓋與隱藏 成員函式的過載 覆蓋 override 與隱藏很容易混淆,c 程式設計師必須要搞清楚 概念,否則錯誤將防不勝防。8.2.1 過載與覆蓋 成員函式被過載的特徵 1 相同的範圍 在同乙個類中 2 函式名字相同 3 引數不同 4 virtual 關鍵字可有可無。覆蓋是指派生類函...

c 過載 覆蓋 隱藏

成員函式的過載 覆蓋與隱藏 成員函式的過載 覆蓋 override 與隱藏很容易混淆,c 程式設計師必須要搞清楚 概念,否則錯誤將防不勝防。8.2.1 過載與覆蓋 成員函式被過載的特徵 1 相同的範圍 在同乙個類中 2 函式名字相同 3 引數不同 4 virtual 關鍵字可有可無。覆蓋是指派生類函...

c 過載 覆蓋 隱藏

成員函式的過載 覆蓋與隱藏 成員函式的過載 覆蓋 override 與隱藏很容易混淆,c 程式設計師必須要搞清楚概念,否則錯誤將防不勝防。成員函式被過載的特徵 1 相同的範圍 在同乙個類中 2 函式名字相同 3 引數不同 4 virtual 關鍵字可有可無。覆蓋是指派生類函式覆蓋基類函式,特徵是 1...