//多重继承 #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; } void show() { cout<<"A基类A::a="<<a<<endl; } }; class B: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: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; }
C++多重继承关系举例
原创
©著作权归作者所有:来自51CTO博客作者银河星君的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:使用友元函数形式进行运算符重载
下一篇:C++多重继承中的虚继承举例
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
C++学习之继承
C++继承学习,包括单继承和多继承的了解,以及菱形继承出现的问题以及解决方法。
继承 虚拟继承 菱形继承 虚拟菱形继承 组合 -
C++ 多重继承
C++ 多重继承. 多重继承是什么, 多重继承的优缺点以及注意事项.
#include 派生类 ios -
C++:52---多重继承
一、多重继承概念多重继承是指:从多个直接基类而产
派生类 构造函数 数据