亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

淺談C++重載、重寫、重定義

2020-01-26 14:33:41
字體:
來源:轉載
供稿:網友

一、重載(overload)

指函數名相同,但是它的參數表列個數或順序,類型不同。但是不能靠返回類型來判斷。

(1)相同的范圍(在同一個作用域中) ;

(2)函數名字相同;

(3)參數不同;

(4)virtual 關鍵字可有可無。

(5)返回值可以不同;

二、重寫(也稱為覆蓋 override)

是指派生類重新定義基類的虛函數,特征是:

(1)不在同一個作用域(分別位于派生類與基類) ;

(2)函數名字相同;

(3)參數相同;

(4)基類函數必須有 virtual 關鍵字,不能有 static 。

(5)返回值相同(或是協變),否則報錯;<―-協變這個概念我也是第一次才知道…

(6)重寫函數的訪問修飾符可以不同。盡管 virtual 是 private 的,派生類中重寫改寫為 public,protected 也是可以的

三、重定義(也成隱藏)

(1)不在同一個作用域(分別位于派生類與基類) ;

(2)函數名字相同;

(3)返回值可以不同;

(4)參數不同。此時,不論有無 virtual 關鍵字,基類的函數將被隱藏(注意別與重載以及覆蓋混淆) 。

(5)參數相同,但是基類函數沒有 virtual關鍵字。此時,基類的函數被隱藏(注意別與覆蓋混淆) 。

#include <iostream>#include <complex>using namespace std;class Base{public:  virtual void a(int x)  {  cout << "Base::a(int)" << endl;   }  // overload the Base::a(int) function  virtual void a(double x) {  cout << "Base::a(double)" << endl;  }  virtual void b(int x)  {  cout << "Base::b(int)" << endl;   }  void c(int x)      {  cout << "Base::c(int)" << endl;   }};class Derived : public Base{public:  // redefine the Base::a() function  void a(complex<double> x)  {  cout << "Derived::a(complex)" << endl;   }  // override the Base::b(int) function  void b(int x)        {  cout << "Derived::b(int)" << endl;     }  // redefine the Base::c() function  void c(int x)        {  cout << "Derived::c(int)" << endl;     }};int main(){  Base b;  Derived d;  Base* pb = new Derived;  // ----------------------------------- //  b.a(1.0);               // Base::a(double)  d.a(1.0);               // Derived::a(complex)  pb->a(1.0);              // Base::a(double), This is redefine the Base::a() function  // pb->a(complex<double>(1.0, 2.0));  // clear the annotation and have a try  // ----------------------------------- //  b.b(10);                // Base::b(int)  d.b(10);                // Derived::b(int)  pb->b(10);               // Derived::b(int), This is the virtual function  // ----------------------------------- //  delete pb;  return 0;}

通過這里可以看出:

1. Base類中的第二個函數a是對第一個的重載

2. Derived類中的函數b是對Base類中函數b的重寫,即使用了虛函數特性。

3. Derived類中的函數a是對Base淚中函數a的隱藏,即重定義了。

4.pb指針是一個指向Base類型的指針,但是它實際指向了一個Derived的空間,這里對pd調用函數的處理(多態性)取決于是否重寫 (虛函數特性)了函數,若沒有,則依然調用基類。

5. 只有在通過基類指針或基類引用 間接指向派生類類型時多態性才會起作用。

6. 因為Base類的函數c沒有定義為virtual虛函數,所以Derived類的函數c是對Base::c()的重定義。

以上這篇淺談C++重載、重寫、重定義就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品2018| 俺去了亚洲欧美日韩| 久久精品中文字幕免费mv| 日韩激情视频在线播放| 久久久精品网站| 一区二区三区天堂av| 国产日韩亚洲欧美| 国产日韩欧美日韩| 一区国产精品视频| 亚洲精品成人网| 欧美巨乳在线观看| 日韩欧美在线网址| 日韩av一区二区在线观看| 中文字幕日韩高清| 在线电影中文日韩| 欧美精品videosex牲欧美| 夜夜狂射影院欧美极品| 日韩av在线直播| 2020欧美日韩在线视频| 91亚洲va在线va天堂va国| 九九精品视频在线观看| 久久久综合av| 美女性感视频久久久| 91香蕉亚洲精品| 久久精品中文字幕电影| 久久久国产视频91| 国产一区二区三区视频| 日韩精品久久久久久久玫瑰园| 国产999视频| 成人高清视频观看www| 久久91亚洲精品中文字幕奶水| 久久国产精品久久久久久| 69视频在线播放| 国产成人久久久| 亚洲国产精品成人va在线观看| 久久精品最新地址| 成人免费福利视频| 性色av一区二区三区红粉影视| 亚洲欧美视频在线| zzijzzij亚洲日本成熟少妇| 亚洲影院污污.| 国产日韩欧美黄色| 国产成人av在线播放| 久久艹在线视频| 欧美丰满片xxx777| 国产精品午夜一区二区欲梦| 日本道色综合久久影院| 日韩福利视频在线观看| 欧美黄色小视频| 日韩高清人体午夜| 久久久久999| 主播福利视频一区| 懂色av中文一区二区三区天美| 欧美xxxwww| 欧美日韩国产在线看| 日韩亚洲国产中文字幕| 亚洲精品电影网站| 久久久久久久久91| 亚洲第一精品夜夜躁人人躁| 国产亚洲日本欧美韩国| 亚洲精品国产综合久久| 日韩女优在线播放| 亚洲精品美女在线| 成人激情视频在线播放| 91人成网站www| 欧美极品xxxx| 91九色国产视频| 日韩av一区二区在线| 欧美日韩国产中文精品字幕自在自线| 懂色av一区二区三区| 欧美亚洲第一区| 国产在线精品一区免费香蕉| 日韩精品在线免费观看| 国产美女精彩久久| 久久久久久香蕉网| 精品偷拍各种wc美女嘘嘘| 久久久久久久香蕉网| 欧美影院久久久| 日日噜噜噜夜夜爽亚洲精品| 97久久国产精品| 国产精品久久久久久久久粉嫩av| 亚洲电影免费在线观看| 91日本在线观看| 日韩经典中文字幕在线观看| 日韩亚洲国产中文字幕| 91社影院在线观看| 欧美国产日韩一区二区| 国产日韩中文字幕| 2025国产精品视频| 欧美日韩国产一区中文午夜| 国产成人高清激情视频在线观看| 精品网站999www| 亚洲自拍偷拍第一页| 久久精品亚洲精品| 成人国内精品久久久久一区| 亚洲电影av在线| 欧美大片欧美激情性色a∨久久| 欧美精品videos性欧美| 国产不卡精品视男人的天堂| 欧美黑人性猛交| 国产成人亚洲综合91| 欧美劲爆第一页| 亚洲国产欧美在线成人app| 国产精品mp4| 国产精品久久97| 欧美亚洲免费电影| 欧美视频免费在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲人成电影在线观看天堂色| 欧美资源在线观看| 日本高清不卡的在线| 久久国产精品久久国产精品| 91精品国产色综合| 久久综合伊人77777| 亚洲一区二区免费| 91麻豆桃色免费看| 国产精品成人aaaaa网站| 亚洲全黄一级网站| 97精品国产97久久久久久春色| 日韩有码在线视频| 一区二区成人精品| 国产一区二区精品丝袜| 国产欧美精品一区二区三区介绍| 久久777国产线看观看精品| 欧美性色视频在线| 欧美性极品少妇精品网站| 欧美精品生活片| 97视频在线播放| 亚洲激情视频网站| 91在线精品视频| 97视频在线观看视频免费视频| 中文字幕综合一区| 91九色视频导航| 欧美激情视频免费观看| 国产91成人video| 精品无码久久久久久国产| 欧美一级高清免费| 日本久久久久亚洲中字幕| 亚洲国产婷婷香蕉久久久久久| 最近更新的2019中文字幕| 欧美高清视频免费观看| 亚洲国产另类久久精品| 成人精品久久av网站| 亚洲国产成人一区| 亚洲欧洲在线视频| 欧美华人在线视频| 韩剧1988免费观看全集| 亚洲影院高清在线| 亚洲成人在线视频播放| 亚洲欧洲在线视频| 国产精品对白刺激| 欧美精品videossex性护士| 欧洲成人午夜免费大片| 亚洲精品第一页| 中文国产亚洲喷潮| 97精品视频在线观看| 国产精品2018| 亚洲激情视频在线播放| 久久久综合免费视频| 久久久久久网站| 欧美一级电影在线| 欧美视频国产精品| 日韩激情av在线播放| 久久久久久久久久久人体|