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

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

C++多重繼承引發的重復調用問題與解決方法

2020-05-23 13:30:38
字體:
來源:轉載
供稿:網友

本文實例講述了C++多重繼承引發的重復調用問題與解決方法。分享給大家供大家參考,具體如下:

前面簡單介紹了一個C++多重繼承功能示例,這里再來分析一個多重繼承引發的重復調用問題,先來看看問題代碼:

#include "stdafx.h"#include<stdlib.h>#include<iostream>using namespace std;class R//祖先類{private:  int r;public:  R(int x = 0):r(x){}  void f()  {    cout << " r = " << r << endl;  }  void print()  {    cout << "print R = " << r << endl;  }};//虛繼承class A : virtual public R{private:  int a;public:  A(int x,int y):R(x),a(y){}  //重寫父類的f()函數  void f()  {    cout << "a = " << a << endl;    R::f();//r是私有成員變量,不能直接訪問,通過作用域進行訪問被派生類覆蓋的函數f()  }};//虛繼承class B : virtual public R{private:  int b;public:  B(int x, int y) :R(x), b(y) {}  //重寫父類的f()函數  void f()  {    cout << "b = " << b << endl;    R::f();//r是私有成員變量,不能直接訪問,通過作用域進行訪問被派生類覆蓋的函數f()  }};class C :public A, public B{private:  int c;public:  C(int x,int y,int z,int m):R(x),A(x,y),B(x,z),c(m)  { }  void f()  {    cout << "c = " << c << endl;    A::f();//此時A里面有一個 r 的輸出,和輸出a    B::f();//B里面也有一個r的輸出,和輸出b    //從而導致重復調用,兩次輸出 r  }};int main(){  C cc(1212, 345, 123, 45);  cc.f();  system("pause");  return 0;}

解決辦法:針對重復調用,每個類把屬于自己的工作單獨封裝

修改后的代碼如下:

#include "stdafx.h"#include<stdlib.h>#include<iostream>using namespace std;class R//祖先類{private:  int r;public:  R(int x = 0):r(x){}  void f()  { cout << " r = " << r << endl;    }  virtual void print()  { cout << "print R = " << r << endl;}};//虛繼承class A : virtual public R//virtual寫在public的前后均可以{private:  int a;public:  A(int x,int y):R(x),a(y){ }protected:  void fA()//增加一個保護函數,只打印自己的擴展成員  {    cout << "a = " << a << endl;  }  void f()//重寫父類的f()函數  {    //cout << "a = " << a << endl;    fA();    R::f();//r是私有成員變量,不能直接訪問,通過作用域進行訪問被派生類覆蓋的函數f()  }};//虛繼承class B : virtual public R{private:  int b;public:  B(int x, int y) :R(x), b(y) {}protected:  void fB()//增加一個保護函數,只打印自己的擴展成員  {    cout << "b = " << b << endl;  }  void f()//重寫父類的f()函數  {    fB();    R::f();//r是私有成員變量,不能直接訪問,通過作用域進行訪問被派生類覆蓋的函數f()  }};class C :public A, public B{private:  int c;public:  C(int x,int y,int z,int m):R(x),A(x,y),B(x,z),c(m)  { }  void f()  {    cout << "c = " << c << endl;    R::f();    //A::f();//此時A里面有一個 r 的輸出,和輸出a    //B::f();//B里面也有一個r的輸出,和輸出b    //從而導致重復調用,兩次輸出 r    fA();//A::fA();    fB();//A::fB();  }};int main(){  C cc(1212, 345, 123, 45);  cc.f();  system("pause");  return 0;}

希望本文所述對大家C++程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
69久久夜色精品国产69| 成人黄色免费网站在线观看| 中文字幕欧美精品日韩中文字幕| 亚洲精品国精品久久99热一| 欧美亚洲另类在线| 色婷婷综合久久久久| 久久久久久久成人| 久久精品久久久久久国产 免费| 亚洲性生活视频| 亚洲直播在线一区| 国产精品久久久久久av下载红粉| 91丨九色丨国产在线| 91在线中文字幕| 51ⅴ精品国产91久久久久久| 亚洲人精选亚洲人成在线| 欧美成人全部免费| 亚洲一区二区少妇| 亚洲精品videossex少妇| 久久这里只有精品99| 国产日韩在线亚洲字幕中文| 久久久国产影院| 91精品久久久久久综合乱菊| 欧美成人免费全部| 丰满岳妇乱一区二区三区| 色青青草原桃花久久综合| 欧美成人精品影院| 另类视频在线观看| 精品久久久久久久久久久久| 日韩成人av在线| 成人免费在线视频网址| 亚洲精品乱码久久久久久按摩观| 成人免费网站在线| 亚洲欧美中文日韩在线v日本| 久久久最新网址| 欧美视频一二三| 亚洲最大的免费| 一本色道久久综合亚洲精品小说| 奇门遁甲1982国语版免费观看高清| 精品无人区太爽高潮在线播放| 国产精品久久97| www国产亚洲精品久久网站| 亚洲白虎美女被爆操| 九九热在线精品视频| 成人在线视频福利| 一夜七次郎国产精品亚洲| 日韩视频免费在线| 亚洲视频axxx| 在线播放日韩av| 中文字幕自拍vr一区二区三区| 欧美电影免费观看高清完整| 国产91精品视频在线观看| 成人免费xxxxx在线观看| 最近更新的2019中文字幕| 亚洲视频在线观看视频| 668精品在线视频| 国产v综合v亚洲欧美久久| 久久综合电影一区| 欧美午夜激情在线| 97在线看免费观看视频在线观看| 91产国在线观看动作片喷水| 成人福利视频网| 一本大道久久加勒比香蕉| 在线日韩日本国产亚洲| 深夜精品寂寞黄网站在线观看| 国产亚洲精品综合一区91| 久久久久久噜噜噜久久久精品| 亚洲丁香婷深爱综合| 在线视频国产日韩| 欧美不卡视频一区发布| 欧美日韩午夜视频在线观看| 久久久久久亚洲精品| 最近2019年日本中文免费字幕| 国产成人av网址| 亚洲欧美日韩久久久久久| 成人乱色短篇合集| 欧美老少做受xxxx高潮| 91久久精品日日躁夜夜躁国产| 国产精品久久久久av免费| 成人中文字幕+乱码+中文字幕| 日韩欧美成人区| 国产成人a亚洲精品| 欧美成人精品在线观看| 日韩免费av片在线观看| 国产精品专区一| 欧美成人精品三级在线观看| 久久久www成人免费精品张筱雨| 成人写真视频福利网| 国产欧美日韩免费| 国产区精品视频| 成人午夜一级二级三级| 国产精品视频男人的天堂| 国产91色在线| 欧美中文在线视频| 欧美又大又粗又长| 78m国产成人精品视频| 亚洲欧洲视频在线| 欧美劲爆第一页| 精品国内产的精品视频在线观看| 久久97精品久久久久久久不卡| 91精品国产自产在线观看永久| 日本精品久久久久影院| 亚洲国产精品系列| 热99精品只有里视频精品| 国产91精品久久久久久| 中文字幕久久精品| 91久久国产婷婷一区二区| 高清欧美性猛交xxxx| 91超碰caoporn97人人| 川上优av一区二区线观看| 欧美国产视频一区二区| 亚洲国产精品热久久| 亚洲精品一区二区久| 欧美一级成年大片在线观看| 精品自在线视频| 欧美乱人伦中文字幕在线| 国产精品视频地址| 欧美黄色小视频| 国产精自产拍久久久久久蜜| 成人网中文字幕| 国产性猛交xxxx免费看久久| 精品久久久久久久久久久久久| 亚洲人成在线观| 亚洲一区二区三区sesese| 久久天堂电影网| 2020国产精品视频| 国产精品久久久久久久电影| 欧美另类极品videosbestfree| 91色琪琪电影亚洲精品久久| 日日骚久久av| 亚洲精品乱码久久久久久金桔影视| 亚洲欧美国产另类| 欧美亚洲视频在线看网址| 亚洲女人被黑人巨大进入| 久久97精品久久久久久久不卡| 狠狠躁夜夜躁人人爽天天天天97| 91精品中国老女人| 欧美精品在线第一页| 精品国产一区二区三区四区在线观看| 自拍偷拍亚洲区| 亚洲午夜精品久久久久久久久久久久| 亚洲女人天堂成人av在线| 欧美电影在线观看完整版| 久久久久久久久久久av| 91在线视频精品| 在线观看日韩视频| 日韩在线免费观看视频| 97福利一区二区| 日韩精品欧美激情| 国产精品久久综合av爱欲tv| 日韩成人激情影院| 神马久久桃色视频| 久久精品99无色码中文字幕| 国产成人精彩在线视频九色| 91视频8mav| 91av在线网站| 亚洲最大中文字幕| 国内精品久久久久久影视8| 国产91热爆ts人妖在线| 日本午夜在线亚洲.国产| 98精品国产高清在线xxxx天堂| 国产亚洲人成网站在线观看| 69av视频在线播放| 在线免费观看羞羞视频一区二区| 国产亚洲成av人片在线观看桃|