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

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

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

2019-11-10 17:09:12
字體:
來源:轉載
供稿:網友

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;}

隱藏

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

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

這里寫圖片描述

兩個函數參數列表不同,無論基類函數是否虛函數,基類函數都將被覆蓋。和重載的區別在于兩個函數不在同一個類中 這里寫圖片描述
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 永年县| 贵南县| 双桥区| 色达县| 道孚县| 清丰县| 绥德县| 英吉沙县| 周至县| 五指山市| 化州市| 米易县| 杂多县| 凤庆县| 堆龙德庆县| 通州市| 高邮市| 法库县| 和顺县| 盐边县| 区。| 台中市| 大英县| 镇江市| 克东县| 富宁县| 万源市| 河源市| 九龙坡区| 梓潼县| 胶南市| 连城县| 时尚| 绥江县| 平乡县| 罗平县| 墨脱县| 鄂尔多斯市| 奉节县| 清远市| 杭州市|