itgle.com
更多“为解决在多重继承环境中因公共基类带来的二义性问题,C++语言提供了【】机制。 ”相关问题
  • 第1题:

    一个类可以同时继承多个类,称为多继承。下列关于多继承和虚基类的表述中,错误的是______ 。

    A.每个派生类的构造函数都要为虚基类构造函数提供实参

    B.多继承时有可能出现对基类成员访问的二义性问题

    C.使用虚基类可以解决二义性问题并实现运行时的多态性

    D.建立派生类对象时,虚基类的构造函数会首先被调用


    正确答案:C
    解析:虚基类不能解决二义性的问题。

  • 第2题:

    一个类可以同时继承多个类,称为多继承。下列关于多个继承和虚基类的表述中,错误的是( )。

    A.每个派生类的构造函数都要为虚基类构造函数提供实参

    B.多继承时有可能出现对基类成员访问的二义性问题

    C.使用虚基类可以解决二义性问题并实现运行时的多态性

    D.建立最派生类对象时,虚基类的构造函数会首先被调用


    正确答案:C

  • 第3题:

    下面关于多重继承的叙述,正确的是()。

    A.C++不支持多重继承

    B.多重继承是指从多层基类中派生出的子类

    C.多重继承中派生类成员的访问控制规则与单一继承规则不相同

    D.多重继承中可以通过虚基类防止二义性问题


    多重继承中可以通过虚基类防止二义性问题。

  • 第4题:

    解决类继承中产生的二义性的方法不包括

    A.使用作用城运算符限定访问的成员函数

    B.在派生类中定义同名函数,且参数表必须和基类的保持一致

    C.在派生类中定义同名函数,且参数表可以和基类的不同

    D.采用虚基类解决多重继承中的共同基类产生的二义性


    正确答案:C
    解析:继承中的二义性主要表现在多重继承中具有多条继承路径时,派生类中行为的不确定性。如果强制指定了按照某条路径访问,亦即采用域作用符限定访问的成员函数的方法可以解决之,故选项A排除。在选项B和C中,唯一的区别在于参数表是否一致,我们知道:参数表不一致同名函数属于重载,是不存在二义性问题的,故选项C是正确答案。关于选项D,虚基类是C++中解决二义性的一种有效手段。

  • 第5题:

    【单选题】在多重继承中,为了避免派生类中访问公共基类公有属性多份拷贝的二义性。可以将一个类声明为 。

    A.友元类

    B.虚基类

    C.抽象类

    D.派生类