小编给大家分享一下C++中继承与友元、继承与类型如何转换,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
我们提供的服务有:成都网站建设、做网站、微信公众号开发、网站优化、网站认证、秦州ssl等。为上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的秦州网站制作公司实例如下:
#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;//正确,只有公共继承的派生类才能向基类转换 a1=e1;//正确 a1=c1;//出错,只有公共继承的派生类才能向基类转换 a1=d1;//出错,只有公共继承的派生类才能向基类转换 system("pause"); return 0; }
对基类指针进行动态绑定时,派生类必须是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++中继承与友元、继承与类型如何转换”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联网站建设公司行业资讯频道!
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前题目:C++中继承与友元、继承与类型如何转换-创新互联
本文网址:https://www.cdcxhl.com/article12/didigc.html
成都网站建设公司_创新互联,为您提供做网站、手机网站建设、用户体验、网站收录、ChatGPT、微信小程序
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联