C++ 多继承
来源:互联网 发布:linux 字符编码 编辑:程序博客网 时间:2024/06/13 12:06
1. 定义格式
class <派生类名>: [<继承方式>] <基类名1>, [<继承方式>] <基类名2>,...
{ <成员说明表>
};
2. 重复继承——虚基类
在多继承中,如果直接基类有公共的基类,则会出现重复继承。这样,公共基类中的数据成员在多继承的派生类中皆有多个拷贝。
如:
class A{ int x;};class B: public A{};class C: public A{};class D: public B, public C{};//此时D用有两个x成员B::x 和 C::x
为了解决这样的问题,要使用虚基类。
1)虚基类的构造函数有最新派生出的类的构造函数调用
2)虚基类的构造函数优先非虚基类的构造函数执行
class A{ int x; public: A(int i) {x=i;}};class B: virtual public A{ int y; public: B(int i): A(1) {y=i;}};class C: virtual public A{ int z; public: C(int i): A(2) {z=i;}};class D: public B, public C{ int m; public: D(int i, int j, int k): B(i),C(j),A(3){m=k;}};class E: public C{ int n; public: E(int i, int j, int k, int l): D(i,j,k),A(4){n=1;}}; D d(1,2,3); E e(1,2,3,4);
当创建D对象d时,所调用的构造函数的顺序是:
A(3), B(1), C(2), D(1,2,3);
当创建E对象e时,所调用的构造函数的顺序是:
A(4), B(1), C(2), D(1,2,3), E(1,2,3,4)
0 0
- objective C多继承
- 【c++】多继承
- [c++]多继承
- C++_多继承
- Objective C实现多继承!
- C继承和多态
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective C实现多继承
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- Objective-C 的“多继承”
- 栈的分析(一)————函数调用栈
- linux查看/编辑文件权限
- php socket通信原理
- Java编程思想(三)--操作符
- 常用DOS命令
- C++ 多继承
- 2017 GAITC全球人工智能技术大会即将于5月召开!
- php的xml操作
- 秦皇岛-北戴河-景
- CodeForces 632 A.Grandma Laura and Apples(水~)
- dos命令运行java程序
- 神经网络训练中图像数据预处理的一些方式(一)
- 不可见字符
- JavaScript学习笔记9-返回语句