相关笔试面试题
- 什么是菱形继承?菱形继承的问题是什么?
- 什么是菱形虚拟继承?如何解决数据冗余和二义性?
- 继承和组合的区别是什么?什么时候用组合?什么时候用继承?
- 多继承中指针偏移的问题?
1.两个子类继承同一个父类,而又有子类又分别继承这两个子类
数据冗余和二义性
2.虚拟继承可以解决菱形继承的二义性和数据冗余的问题。
借助虚基表和虚基表指针实现,其中虚基表中存在当前对象相对于基类部分的偏移量,从而通过偏移量准确的找到基类的内容。
3.public继承是一种is-a的关系。也就是说每个派生类对象都是一个基类对象。
组合是一种has-a的关系。假设B组合了A,每个B对象中都有一个A对象。