C++基础之类的虚继承
来源:互联网 发布:软件测试招聘 石家庄 编辑:程序博客网 时间:2024/06/05 21:01
一、多重继承:很少用,现代高级语言弃用多继承
1、基本语法:class D:public A,private B,protected C
{类D新增加的成员}
2、二义性:A类中有成员a,B类中有成员a,D类继承过来以后,a会出现二义性问题。
解决办法:1>对于重名情况,添加作用域,c.a=100;c.A::a=100;(这种写法)
2>对与基类中的成员由多份存储变为单一存储,虚继承。
二、虚继承
1、为什么需要虚继承?(虚基类的作用)
在一个类中保留间接共同基类的多份同名成员, 这种现象是人们不希望出现的。C++提供虚基类(virtual base class)的方法, 使得在继承间接共同基类时只保留一份成员。
2、虚基类(虚继承)使用:
Class D;
Class A:public virtual D;
Class B:public virtual D;
Class C:public A,public B;
类C的构造函数为:C(int a,int b,int c,int d):D(d),A(a),B(b),c(c)
{
}
在最后的派生类中不仅要负责对其直接基类进行初始化,还要负责对虚基类初始化。
C++编译系统只执行最后的派生类对虚基类的构造函数的调用,而忽略虚基类的其他派生类(如类B和类C) 对虚基类的构造函数的调用,这就保证了虚基类的数据成员不会被多次初始化。
三、多用组合少用继承!!!!!
在一个类中以另一个类的对象作为数据成员的, 称为类的组合(composition)。继承是纵向的,组合是横向的。阅读全文
0 0
- C++基础之类的虚继承
- c++基础之类的继承
- Java基础总结之类的继承
- Python基础篇之类的继承
- java基础之类继承
- java基础之类继承
- C++基础之类继承1
- C++虚继承之类的实际大小
- OC之类的继承
- C++之类的继承
- swift之类的继承
- Java之类的继承
- C++之类的继承
- 用汇编的眼光看C++(之类继承) ,(之虚函数) .
- 用汇编的眼光看C++(之类继承)
- 用汇编的眼光看C++(之类继承)
- 用汇编的眼光看C++(之类继承)
- 用汇编的眼光看C++(之类继承)
- 正则表达式——基础部分
- Python基础语法之—— callable(object)
- Codeforces Round #386 (Div. 2) D
- 基础题目选解+数据结构基础
- [leetcode]103. Binary Tree Zigzag Level Order Traversal@Java解题报告
- C++基础之类的虚继承
- 范数
- C++中__int64的使用
- zhx's contest HDU
- BCD ASCII 相互转换
- Dijsktra模板
- Cellphone Number手机号码
- 【runc 源码分析】runc create / start 流程分析
- MySQL5.7性能优化系列(二)——SQL语句优化(3)——使用物化策略优化子查询