“虚基类”是通过什么方式定义的?如果类A有派生类B、C,类A是类B虚基类,那么它也一定是类C的虚基类吗?为什么?
具有虚继承的类体系中,建立派生类对象时,以什么顺序调用构造函数?请用简单程序验证你的分析
具有虚继承的类体系中,建立派生类对象时,以什么顺序调用构造函数?请用简单程序验证你的分析
举一反三
- 下列关于友元的描述中,错误的是( )。 A: 在建立虚基类的派生对象时,只有最远派生类的构造函数调用虚基类的构造函数。 B: 在建立虚基类的派生对象时,虚基类构造函数的调用次数与虚基类下面的派生类个数有关。 C: 设置虚基类的目的是消除二义性 。 D: 虚基类可以实例化一个或多个对象。
- 下面描述中,正确的是( )。 A: 虚拟继承可以解决多重继承中的二义性问题 B: 类层次中的类从虚基类中直接继承虚基类的成员 C: 在有虚基类的类层次中,创建派生类对象时,会先调用基类的构造函数再调用虚基类的构造函数 D: 在有虚基类的类层次中,销毁派生类对象时析构函数的调用顺序与创建派生类对象时构造函数的调用顺序相反
- 引入虚基类就是为了解决什么问题?怎样定义虚基类?带有虚基类的派生类的构造函数有什么特点?
- 下列有关派生和继承的表述中,错误的是____。 A: 若派生类没有实现基类中的一个纯虚函数,则该派生类是抽象类 B: 在定义派生类时,可以用关键字virtual将某个基类指定为虚基类 C: 在生成派生类对象时,派生类构造函数要调用基类的构造函数 D: 派生类中定义的成员函数可以访问基类的所有成员
- 关于虚基类,下列描述正确的是( ) A: 虚基类用于解决浅复制的问题 B: 虚基类用于解决访问二义性的问题 C: 虚基类不能解决派生类继承得到的同一基类成员的多份拷贝问题 D: 实例化对象时,所有派生类的构造函数都会调用虚基类的构造函数