国产探花免费观看_亚洲丰满少妇自慰呻吟_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++中的單例模式

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

圖片精選

主站蜘蛛池模板: 沂南县| 玉环县| 景德镇市| 平湖市| 且末县| 临邑县| 嘉义市| 城步| 石阡县| 济南市| 新田县| 威远县| 九江县| 神木县| 汾西县| 呈贡县| 垣曲县| 连云港市| 清远市| 蒙山县| 土默特右旗| 鄄城县| 绥化市| 曲靖市| 静乐县| 临清市| 石阡县| 凤庆县| 阿瓦提县| 漯河市| 黄山市| 上蔡县| 石狮市| 达孜县| 宁河县| 报价| 南溪县| 新蔡县| 合江县| 东丽区| 万载县|