日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(继承)virtual与访问控制

發布時間:2025/3/18 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (继承)virtual与访问控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前只注意過訪問控制與繼承的關系,這邊不多說,今天看到代碼看到virtual放在private里,并且還有派生類沒有override public里的virtual,此時調用時啥情況了,這邊有點暈,看下面代碼

首先最基本的多態代碼

#include <iostream> #include <string>using namespace std;class animal { public://animal();//~animal();virtual void speakout(){cout << "animal voice voice voice" << endl;} }; class cat :public animal { public://cat();//~cat();virtual void speakout(){cout << "cat miao miao miao" << endl;} };int main() {cat ocat;animal *panimal = &ocat;panimal->speakout();getchar();}

運行結果沒有任何問題,結果如下:

如果virtual是私有的,代碼如下:

#include <iostream> #include <string>using namespace std;class animal { private://animal();//~animal();virtual void speakout(){cout << "animal voice voice voice" << endl;} }; class cat :public animal { private://cat();//~cat();virtual void speakout(){cout << "cat miao miao miao" << endl;} };int main() {cat ocat;animal *panimal = &ocat;panimal->speakout();getchar();}

編譯就會報錯,報錯如下,實際上此時放在private里的時候,virtual有和沒有一樣,都是類的私有成員,只有類內部成員以及友元能夠訪問

主要是考慮下面一種特殊情況,基類里有virtual A(),派生類繼承的時候沒有override A(),切A()會調用私有的private virtual,代碼如下:

#include <iostream> #include <string>using namespace std;class animal { public:virtual void speak(){speakout();} private://animal();//~animal();virtual void speakout(){cout << "animal voice voice voice" << endl;} }; class cat :public animal { private://cat();//~cat();virtual void speakout(){cout << "cat miao miao miao" << endl;} };int main() {cat ocat;animal *panimal = &ocat;panimal->speak();getchar();}

其運行結果如下:

?

再對比如下代碼:

#include <iostream> #include <string>using namespace std;class animal { public:virtual void speak(){speakout();} private://animal();//~animal();void speakout(){cout << "animal voice voice voice" << endl;} }; class cat :public animal { private://cat();//~cat();void speakout(){cout << "cat miao miao miao" << endl;} };int main() {cat ocat;animal *panimal = &ocat;panimal->speak();getchar();}

?其運行結果如下:

說明此時的private里的virtual是不能去掉的,如果去掉的話,speak()調用的是類本身的私有函數speakout(),否則調用的是派生類cat里的speakout()函數

?

當派生類繼承了基類里的public speak(),哪怕沒做任何修改,去掉private里的virtual,結果調用也是派生類里的speakout(),代碼如下:

#include <iostream> #include <string>using namespace std;class animal { public:virtual void speak(){speakout();} private://animal();//~animal();void speakout(){cout << "animal voice voice voice" << endl;} }; class cat :public animal { public:virtual void speak(){speakout();} private://cat();//~cat();void speakout(){cout << "cat miao miao miao" << endl;} };int main() {cat ocat;animal *panimal = &ocat;panimal->speak();getchar();}

  

運行結果如下:

只能猜測派生類沒有繼承基類里的public speak(),panimal->speak()調用的是基類里的speak()函數,這時候間接調用的speakout()如果是虛函數則調用派生類的(哪怕是private),否則調用基類的

當繼承了基類里的public speak(),panimal->speak()直接就調用了派生類里的speakout(),這時候speakout()是不是虛函數已沒有關系

?

?

這邊的原理我也沒搞懂,只知道現在用起來是這樣,如果哪位大神知道原理的能和我講下,不甚感激!!!!!!!!!!!

  

轉載于:https://www.cnblogs.com/effortscodepanda/p/6880596.html

總結

以上是生活随笔為你收集整理的(继承)virtual与访问控制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产乱妇无码大片在线观看 | 一本大道综合伊人精品热热 | 在线国产福利 | 一区二区三区xxx | 高h喷水荡肉少妇爽多p视频 | 在线看片你懂得 | 欧美一区二区视频免费观看 | 又黄又色又爽的视频 | 老头把女人躁得呻吟 | 内裤摩擦1v1h| 国产日韩高清在线 | 国产第5页| 原创少妇半推半就88av | 黄色网av| 男人爽女人下面动态图 | 欧美日韩在线视频免费观看 | 国产视频二区三区 | 成人性生交免费看 | 超级碰碰97| 在线成人观看 | 国产麻豆xxxvideo实拍 | 欧美大喷水吹潮合集在线观看 | 天天干狠狠爱 | 九色视频国产 | 国产黄色自拍视频 | 国产最新网址 | 19韩国主播青草vip | 中国老熟女重囗味hdxx | 五月激情丁香婷婷 | 美日韩精品一区二区 | 免费看60分钟黄视频 | 欧美a级在线免费观看 | 免费欧美日韩 | 性午夜| 日本一本高清视频 | 91亚洲一区二区三区 | 国产叼嘿视频在线观看 | 国产精品偷伦视频免费看 | 97高清国语自产拍 | 一卡二卡三卡四卡 | 国产高清色 | 美女视屏| 日本wwwxx | 一区影视 | 国产精品美女久久久久久 | 成年人午夜视频 | 女同性做受全过程动图 | 日韩精品中文字幕在线观看 | 亚洲精品高清在线 | 亚洲激情二区 | 日韩美女性生活 | 欧美性受xxxx黑人xyx性 | 国产伦精品一区二区三区高清 | 久久久精品人妻av一区二区三区 | 黄色动漫在线观看 | 日韩在线一区二区 | 国产大屁股喷水视频在线观看 | 国产精品成人免费视频 | 在线免费观看污视频 | www麻豆 | 亚洲产国偷v产偷v自拍涩爱 | 国产精品亚洲一区二区三区 | 中文字幕一区久久 | 久久精品国产亚洲av无码娇色 | 日本熟女一区二区 | 男女视频免费观看 | 天堂久久av | 亚洲精品高潮久久久久久久 | 成年人在线观看网站 | av导航网站 | 国产综合精品在线 | 成人影视免费观看 | 又黄又免费的视频 | 国产三级在线免费观看 | 免费吃奶摸下激烈视频 | av集中营| 激情小说中文字幕 | 日本激情视频在线观看 | 亚洲一区二区在线免费观看 | av在线操 | 欧美一区二区不卡视频 | 欧美午夜一区二区三区 | 国产亚洲不卡 | 狠狠精品干练久久久无码中文字幕 | 成人免费在线网址 | 欧洲一区在线 | 青青青视频在线播放 | 夜夜添无码一区二区三区 | av网站免费在线 | 制服.丝袜.亚洲.另类.中文 | 国产区在线看 | 国产又黄又猛的视频 | 中文字幕第12页 | 91高跟黑色丝袜呻吟在线观看 | 日本中文字幕在线不卡 | 色欲av永久无码精品无码蜜桃 | 天堂在线8 | 亚洲精品国产精品乱码不99 | 亚洲AV无码乱码国产精品色欲 |