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

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

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

2020-05-23 14:03:01
字體:
來源:轉載
供稿:網友
下面小編就為大家帶來一篇淺談C++重載、重寫、重定義。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
 

一、重載(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++重載、重寫、重定義就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
最近2019年好看中文字幕视频| 国产精品久久久久99| 97国产精品视频| 狠狠色狠狠色综合日日小说| 日韩有码在线观看| 欧美日韩午夜视频在线观看| 亚洲白拍色综合图区| 国产成人精品久久二区二区| 国产精品免费小视频| 成人久久一区二区三区| 国产欧美精品va在线观看| 91高清在线免费观看| 国产一区二区三区在线视频| 久久99精品久久久久久琪琪| 亚洲摸下面视频| 国产精品美女免费| 日韩美女免费线视频| 成人免费网站在线看| 亚洲乱亚洲乱妇无码| 日韩精品免费观看| 欧美裸体xxxx极品少妇软件| 国产一区二区三区四区福利| 91福利视频网| 疯狂做受xxxx欧美肥白少妇| 欧美性猛交xxxx| 成人欧美一区二区三区黑人| 精品久久久国产| 久久中文字幕一区| 九九热精品视频国产| 成人a在线视频| 97在线看福利| 亚洲精品第一页| 久久久999精品| 亚洲精品色婷婷福利天堂| 久久久久久香蕉网| 免费91在线视频| 国产亚洲人成网站在线观看| 中日韩美女免费视频网站在线观看| 日韩欧美在线视频日韩欧美在线视频| 亚洲在线一区二区| 国产精品一区二区三区在线播放| 久久精品99国产精品酒店日本| 久久久久久亚洲精品不卡| 久久久久久午夜| 国产亚洲欧美另类中文| 精品视频—区二区三区免费| 欧美大荫蒂xxx| 超碰精品一区二区三区乱码| 亚洲精品国产电影| 亚洲电影成人av99爱色| 国外成人在线播放| 欧美大码xxxx| 亚洲精品久久久久久久久久久久| 成人久久久久爱| 欧美日韩免费在线| 日韩精品在线视频观看| 91免费欧美精品| 日韩激情视频在线播放| 日韩av片免费在线观看| 精品国产精品三级精品av网址| 国产成人精品免高潮费视频| 青青久久av北条麻妃海外网| 色系列之999| 一本色道久久综合亚洲精品小说| 日韩精品欧美国产精品忘忧草| 亚洲天堂男人的天堂| 久久人人爽人人爽人人片亚洲| 日韩在线视频导航| 国产精品香蕉国产| 国产91免费看片| 亚洲男人第一av网站| 亚洲大胆人体av| 国产精品久久久久福利| 一区二区成人精品| 成人黄色影片在线| 国产美女搞久久| 欧美中文字幕第一页| 亚洲一区二区三区四区在线播放| 日本一区二区三区在线播放| 亚洲色图综合久久| 深夜精品寂寞黄网站在线观看| 欧美与黑人午夜性猛交久久久| 欧美日韩国产成人| 久久影院在线观看| 国产精品亚洲精品| 精品久久久香蕉免费精品视频| 福利视频导航一区| 亚洲福利影片在线| 欧美人成在线视频| 日韩av在线精品| 国产精品白嫩初高中害羞小美女| 久久69精品久久久久久久电影好| 久久亚洲精品视频| 欧美成人第一页| 国产精品美女在线观看| 一本一本久久a久久精品综合小说| 亚洲欧美制服第一页| 精品国产31久久久久久| 美女av一区二区三区| 欧美激情中文字幕乱码免费| 精品久久久久久久久久久久久久| 日韩有码在线视频| 久久人人爽人人爽人人片av高清| 日韩在线观看视频免费| 黄色成人av在线| 国产精品免费久久久久久| 久久国产精品久久精品| 国产精品极品美女在线观看免费| 91精品国产高清久久久久久久久| 成人h片在线播放免费网站| 在线播放亚洲激情| 国产91色在线免费| 欧美精品久久久久久久久| 久久综合久中文字幕青草| 欧美精品九九久久| 日日狠狠久久偷偷四色综合免费| 2020久久国产精品| 欧美精品久久一区二区| 国产欧美日韩中文字幕| 亚洲自拍小视频| 2019中文字幕免费视频| 成人有码视频在线播放| 国产日韩中文在线| 国产精品永久免费视频| 欧美激情xxxx性bbbb| 国产97免费视| 中文字幕日韩欧美在线| 国产不卡在线观看| 深夜福利亚洲导航| 亚洲一区二区三区四区在线播放| 日韩av在线免费看| 中文字幕日韩精品在线| 国产精品扒开腿做爽爽爽男男| 欧美日本亚洲视频| 中文字幕亚洲无线码a| 91精品国产91久久久久久久久| 91亚洲精品一区二区| 国内精品400部情侣激情| 亚洲欧美在线免费观看| 91老司机精品视频| 中文字幕精品—区二区| 日韩欧美主播在线| 亚洲精品视频久久| 欧美日韩黄色大片| 亚洲免费视频网站| 国语自产精品视频在线看抢先版图片| 成人a视频在线观看| 亚洲欧美日韩爽爽影院| 亚洲无线码在线一区观看| 欧美一级电影免费在线观看| 日韩精品中文在线观看| 日韩av电影免费观看高清| 日韩最新中文字幕电影免费看| 91极品视频在线| 日韩av在线网址| 黑人与娇小精品av专区| 色久欧美在线视频观看| 在线观看欧美成人| 久久伊人精品一区二区三区| 精品久久中文字幕久久av| 国内久久久精品| 国产精品十八以下禁看| 亚洲一区二区三区四区视频| 久久精品成人欧美大片古装|