小編給大家分享一下C++中繼承與友元、繼承與類型如何轉(zhuǎn)換,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的志丹網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
實例如下:
#include <iostream> using namespace std; class a{ friend class pal; private: int i; protected: int j; public: int k; }; class b:public a{ protected: int l; }; class c:protected a{}; class d:private a{}; class e:public b{}; class pal{ public: void f(a a1){ cout<<a1.i;//正確,友元能訪問私有成員 } void f1(b b1){ cout<<b1.i;//正確,友元能訪問派生類的基類部分 cout<<b1.l;//出錯,pal類不是b的友元 } }; class deri_pal:public pal{ public: void f2(a a1){ cout<<a.i;//出錯,友元不能繼承 } }; int main() { a a1; b b1; c c1; d d1; e e1; a1=b1;//正確,只有公共繼承的派生類才能向基類轉(zhuǎn)換 a1=e1;//正確 a1=c1;//出錯,只有公共繼承的派生類才能向基類轉(zhuǎn)換 a1=d1;//出錯,只有公共繼承的派生類才能向基類轉(zhuǎn)換 system("pause"); return 0; }
對基類指針進行動態(tài)綁定時,派生類必須是public派生而來,否則不能把基類指針綁定到派生類對象上
#include <iostream> using namespace std; class a{}; class b:public a{}; class c:protected a{}; class d:private a{}; class bb:public b{}; class cc:public c{}; class dd:public d{}; int main() { a a1;b b1;c c1;d d1;bb bb1;cc cc1;dd dd1; a* a1=&b1;//ok a* a2=&c1;//error a* a3=&d1;//error a* a4=&bb1;//ok a* a5=&cc1;//error a* a6=&dd1;//error system("pause"); return 0; }
以上是“C++中繼承與友元、繼承與類型如何轉(zhuǎn)換”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
本文題目:C++中繼承與友元、繼承與類型如何轉(zhuǎn)換
標(biāo)題鏈接:http://aaarwkj.com/article16/pjcodg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、品牌網(wǎng)站制作、網(wǎng)站設(shè)計公司、移動網(wǎng)站建設(shè)、虛擬主機、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)