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

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

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

2019-11-10 17:21: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;}

隱藏

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

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

這里寫圖片描述

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

圖片精選

主站蜘蛛池模板: 天津市| 宝清县| 五大连池市| 康乐县| 高安市| 宾川县| 林周县| 会理县| 敦化市| 潼关县| 马公市| 酒泉市| 甘谷县| 雅安市| 濮阳县| 曲阳县| 嘉义县| 湘阴县| 太仆寺旗| 清徐县| 安远县| 霸州市| 砀山县| 德保县| 东明县| 马关县| 大荔县| 许昌市| 林口县| 高青县| 金寨县| 洛南县| 益阳市| 民丰县| 康平县| 永兴县| 孝感市| 靖边县| 罗山县| 泗水县| 清新县|