• 2021-04-14
    一个类可以同时继承多个类,称为多继承。下列关于多个继承和虚基类的表述中,错误的是 A.每个派生类的构造函数都要为虚基类构造函数提供实参 B.多继承时有可能出现对基类成员访问的二义性问题 C.使用虚基类可以解决二义性问题并实现运行时的多态性 D.建立最派生类对象时,虚基类的构造函数会首先被调用
  • 正确答案:C解析:本题考核虚基类。C++中,通过虚拟基类所派生的类,在所产生的对象中,只包含了一个和其他类共享的基础对象,也就是说,从同一个基类中以虚拟方式派生的所有类,在它们所产生的对象里,不会有一份基础对象,而只是在内存里保留一份基础对象,而派生类中只保留指向此基础对象的指针,这样就不会同时有两份基类对象的情形发生。用虚基类可以解决二义性问题。但是实现运行时的多态性是虚函数。

    举一反三

    内容

    • 0

      关于虚基类,下列描述正确的是( ) A: 虚基类用于解决浅复制的问题 B: 虚基类用于解决访问二义性的问题 C: 虚基类不能解决派生类继承得到的同一基类成员的多份拷贝问题 D: 实例化对象时,所有派生类的构造函数都会调用虚基类的构造函数

    • 1

      下列关于友元的描述中,错误的是( )。 A: 在建立虚基类的派生对象时,只有最远派生类的构造函数调用虚基类的构造函数。 B: 在建立虚基类的派生对象时,虚基类构造函数的调用次数与虚基类下面的派生类个数有关。 C: 设置虚基类的目的是消除二义性 。 D: 虚基类可以实例化一个或多个对象。

    • 2

      【单选题】下面关于类的继承说法错误的是 A. 派生类只能继承于一个基类 B. 基类可以定义虚方法成员 C. 类的继承不可以传递 D. 派生类自然继承基类的成员,但不能继承基类的构造函数成员

    • 3

      ​多继承派生类构造函数构造对象时,()被最先调用。 ​ A: 派生类自己的构造函数 B: 虚基类的构造函数 C: 非虚基类的构造函数 D: 派生类中子对象类的构造函数

    • 4

      下列有关派生和继承的表述中,错误的是____。 A: 若派生类没有实现基类中的一个纯虚函数,则该派生类是抽象类 B: 在定义派生类时,可以用关键字virtual将某个基类指定为虚基类 C: 在生成派生类对象时,派生类构造函数要调用基类的构造函数 D: 派生类中定义的成员函数可以访问基类的所有成员