C 繼承結構中的過載與隱藏

2021-10-19 14:45:24 字數 642 閱讀 3498

#includeusing namespace std;

class base

void show()

void show(int)

protected:

int ma;

};class derive :public base

void show()

protected:

int mb;

};int main()

//derive類中沒有show()可以正常執行,derive中寫了show(),只能正常執行d.show();,不能再呼叫基類中的show(int)

1.過載

過載必須要在同一作用域中,並且函式名相同,引數不同

基類中的show()和派生類的show()不能構成過載因為作用域不同。

2.隱藏

在繼承結構中,派生類會把基類中的同名成員隱藏了

派生類中的show()將基類中的所有同名成員都隱藏了

如果想要呼叫基類的show(int)

d.base::show(int);
在繼承結構中進行上下型別轉換,只能進行從下向上的型別轉換
int main()

繼承中的過載 隱藏

過載關係 一組函式要過載,必須處於同一作用域下。而且函式名字相同引數列表不同。class base void show void show int private int ma class derive public base void show 1 void show int 2 遮蔽之後再進行呼...

C 的過載 覆蓋 隱藏 繼承

函式過載 函式的繼承 這個不多說 子類繼承父類的公有變數 函式的覆蓋 也是重寫 關於子類修改了父類的成員函式 所以呼叫跟父類同名的成員函式 顯示的是子類的修改的函式的輸出方式 函式的隱藏 在父類和子類都有同名函式時,可以是顯示父類的函式輸出方式 也可以是顯示子類的輸出方式 但兩者會顯示的原因不同,如...

C 中的覆蓋 過載與隱藏

c 中類本身之間的函式關係與基類和子類之間的函式關係有 覆蓋 過載與隱藏。1 覆蓋 c 中在基類用virtual定義的函式在子類中重新定義,此時稱為覆蓋,即子類對父類函式的覆蓋。2 過載 同乙個類中定義了多個同名但其形參不同的函式,這些同名函式之間為過載。3 隱藏 函式的隱藏有兩種情況。第一,如果派...