上一篇虚继承举例:http://10638473.blog.51cto.com/10628473/1964414
创新互联公司是一家专注于成都网站制作、成都做网站与策划设计,东营网站建设哪家好?创新互联公司做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:东营等地区。东营做网站价格咨询:18982081108本文将A类中的show()函数前加上virtual关键字。
//多重继承 #include <iostream> using namespace std; class A { public: int a; A(int a=0):a(a) { cout<<"A基类A::A()"<<endl; } ~A() { cout<<"A基类A::~A()"<<endl; } virtual void show() { cout<<"A基类A::a="<<a<<endl; } }; class B:virtual public A { protected: int b; public: B(int a=0,int b=0):A(a),b(b) { cout<<"B子类B:B()"<<endl; } ~B() { cout<<"B子类B:~B()"<<endl; } void show() { cout<<"B子类B::b="<<b<<endl; } }; class C:virtual public A { protected: int c; public: C(int a=0,int c=0):A(a),c(c) { cout<<"C子类C::C()"<<endl; } ~C() { cout<<"C子类C::~C()"<<endl; } void show() { cout<<"C子类C::c="<<c<<endl; } }; class D:public B,public C { protected: int d; public: D(int a=0,int b=0,int c=0,int d=0):d(d),B(a,b),C(a,c) { cout<<"D孙子类D::D()"<<endl; } ~D() { cout<<"D孙子类D::~D()"<<endl; } void show() { cout<<"D孙子类D::c="<<d<<endl; } }; void Display(A *p) { p->show(); } int main(int argc, char *argv[]) { A a(1); B b(2,3); C c(4,5); D d(6,7,8,9); A *p; p=&a; p->show(); p=&b; p->show(); p=&c; p->show(); B *q; q=&d; q->show(); return 0; }
可以和上一篇对比一下结果。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章题目:C++多重继承中的虚继承和虚函数举例-创新互联
当前地址:https://www.cdcxhl.com/article18/dhhodp.html
成都网站建设公司_创新互联,为您提供企业网站制作、网站导航、面包屑导航、标签优化、电子商务、ChatGPT
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联