国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++ 類成員函數的重載,重寫/覆蓋,隱藏

2019-11-10 19:35:01
字體:
來源:轉載
供稿:網友

C++ 類層次中的同名函數,有三種關系:

重載(overload)重寫、覆蓋(override)隱藏(hide,oversee)

重載

c++函數重載

相同的范圍(在同一個類中)相同的函數名字,不同的參數列表,與返回值類型沒有關系virutal關鍵字可有可無

重寫、覆蓋

覆蓋值: 在派生類中覆蓋基類中的同名函數,要求基類函數必須是虛函數,且 1. 與基類的虛函數有相同的參數列表 2. 與基類的虛函數有相同的返回類型: 或者與基類虛函數的相同,或者都返回指針(或引用),并且派生類虛函數所返回的指針(或引用)類型是基類中被替換的虛函數所返回的指針(或引用)類型的子類型(派生類型)

這里寫圖片描述

class A{public: virtual void fun(int x) { cout << "A:" << x << endl; }};class B: public A // B繼承A{public: void fun(int x) { cout << "B:" << x << endl; }};int main( ){ A *a = new B; a->fun(2); // 多態,打印 B:2 return 0;}class A{public: void fun(int x) { cout << "A:" << x << endl; }};class B: public A // B繼承A{public: void fun(int x) { cout << "B:" << x << endl; }};int main( ){ A *a = new B; a->fun(2); // 基類中函數虛函數 無多態,打印 A:2 return 0;}

隱藏

隱藏指在某些情況下,派生類中的函數屏蔽了基類中的同名函數,這些情況包括

兩個函數參數相同,單數基類不是虛函數。和覆蓋的區別在于基類函數是否是虛函數,例如

這里寫圖片描述

兩個函數參數列表不同,無論基類函數是否虛函數,基類函數都將被覆蓋。和重載的區別在于兩個函數不在同一個類中 這里寫圖片描述
上一篇:c++

下一篇:C++中的單例模式

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 云梦县| 施秉县| 麦盖提县| 耒阳市| 三门峡市| 泾阳县| 江陵县| 青冈县| 东光县| 新安县| 大洼县| 白山市| 鹤山市| 临夏县| 拜城县| 广西| 横山县| 汉源县| 香港 | 来宾市| 玉山县| 儋州市| 东兰县| 杭锦后旗| 海宁市| 澄城县| 吉林市| 厦门市| 宾川县| 收藏| 永新县| 固始县| 澄江县| 六安市| 佳木斯市| 安康市| 河东区| 沈阳市| 天祝| 太仓市| 濮阳市|