下列关于多继承的描述,错误的是()A、一个派生类对象可以拥有多个直接或间接基类的成员B、在多继承时不同的基类可以有同名成员C、对于不同基类的同名成员,派生类对象访问它们时不会出现二义性D、对于不同基类的不同名成员,派生类对象访问它们时不会出现二义性

题目

下列关于多继承的描述,错误的是()

  • A、一个派生类对象可以拥有多个直接或间接基类的成员
  • B、在多继承时不同的基类可以有同名成员
  • C、对于不同基类的同名成员,派生类对象访问它们时不会出现二义性
  • D、对于不同基类的不同名成员,派生类对象访问它们时不会出现二义性

相似考题
更多“下列关于多继承的描述,错误的是()A、一个派生类对象可以拥有多个直接或间接基类的成员B、在多继承时不同的基类可以有同名成员C、对于不同基类的同名成员,派生类对象访问它们时不会出现二义性D、对于不同基类的不同名成员,派生类对象访问它们时不会出现二义性”相关问题
  • 第1题:

    下列有关继承和派生的叙述中,正确的是( )。

    A.如果一个派生类公有继承其基类,则该派生类对象可以访问基类的保护成员

    B.派生类的成员函数可以访问基类的所有成员

    C.基类对象可以赋值给派生类对象

    D.如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类


    正确答案:D
    私有继承方式为基类的公用成员和保护成员在派生类中成了私有成员,其私有成员仍为基类私有,但派生类对象可以访问基类的保护成员,所以基类对象不能赋值给派生类对象。抽象类是指含有纯虚拟函数的类,所以选项D正确。

  • 第2题:

    下列关于派生类和基类的描述中,正确的是( )。

    A) 派生类成员函数只能访问基类的公有成员

    B) 派生类成员函数只能访问基类的公有和保护成员

    C) 派生类成员函数可以访问基类的所有成员

    D) 派生类对基类的默认继承方式是公有继承

    A.

    B.

    C.

    D.


    正确答案:B

  • 第3题:

    下列描述中错误的是( )。

    A.派生类可以使用private派生

    B.对基类成员访问必须是无二义性的

    C.赋值兼容规则也适合于多继承

    D.基类和派生类中存在同名函数,将出现二义性


    正确答案:D
    解析:基类和派生类存在同名函数,符合支配规则,不存在二义性。

  • 第4题:

    下列关于多继承二义性的描述中,错误的是( )。

    A.一个派生类的两个基类中都有某个同名成员,派生类中这个成员的访问可能出现二义性

    B.解决二义性的最常用的方法是对成员名的限定法

    C.基类和派生类中同时出现的同名函数,也存在二义性问题

    D.一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,可能出现二义性


    正确答案:C

  • 第5题:

    下列关于多继承.二义性的描述中,错误的是( )。

    A.一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性。

    B.解决二义性的最常用的方法是对成员名的限定法

    C.基类和派生类中同时出现的同名函数,也存在二义性问题

    D.一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,可能出现二义性


    正确答案:C
    解析:本题考核多继承中出现的二义性问题。在多重继承的情况下,派生类具有两个以上的直接基类,而这些直接基类的一部分或全部又是从另一个共同基类派生而来时,这些直接基类中从上一级继承来的成员就拥有相同的名称。在派生类的对象中,这些同名成员在内存中同时有多个复制件,所以派生对这些同名成员的访问存在二义性。所以选项A和D的说法是正确的。解决二义性的方法有两种:一是使用作用域分辨符来惟一标识并分别访问它们:二是可以将共同基类设置为虚基类。而第一种方法最常用。所以选项B的说法是正确的。基类和派生类中同时出现同名函数,符合支配规则,不存在二义性问题。所以选项C的说法不正确。

  • 第6题:

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

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

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

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

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


    正确答案:C

  • 第7题:

    下列有关继承和派生的叙述中,正确的是( )。

    A.如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员

    B.派生类的成员函数可以访问基类的所有成员

    C.基类对象可以赋值给派生类对象

    D.如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类


    正确答案:D

  • 第8题:

    关于保护继承,下列说法错误的是()。

    • A、保护继承的特点是基类的所有公用成员和保护成员都成为派生类的保护成员。
    • B、派生类对象不能访问基类中的任何成员。
    • C、派生类的对象可以访问基类的公有成员。
    • D、保护继承的派生类和私有继承的派生类,对基类成员访问属性是相同的。

    正确答案:C

  • 第9题:

    下列关于类层次中重名成员的描述,错误的是()

    • A、C++允许派生类的成员与基类成员重名
    • B、在派生类中访问重名成员时,屏蔽基类的同名成员
    • C、在派生类中不能访问基类的同名成员
    • D、如果要在派生类中访问基类的同名成员,可以显式地使用作用域符指定

    正确答案:C

  • 第10题:

    填空题
    当保护继承时,基类的()成员在派生类中成为保护成员,派生类对象不能直接访问基类的()成员。

    正确答案: 公有和保护,任何
    解析: 暂无解析

  • 第11题:

    单选题
    下列关于多继承的描述,错误的是()
    A

    一个派生类对象可以拥有多个直接或间接基类的成员

    B

    在多继承时不同的基类可以有同名成员

    C

    对于不同基类的同名成员,派生类对象访问它们时不会出现二义性

    D

    对于不同基类的不同名成员,派生类对象访问它们时不会出现二义性


    正确答案: D
    解析: 暂无解析

  • 第12题:

    单选题
    关于私有继承,下列说法错误的是()。
    A

    基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的其他成员可以直接访问他们。

    B

    基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的其他成员不能直接访问他们。

    C

    基类的私有成员,派生类的成员和派生类的对象都无法访问。

    D

    派生类的对象无法访问基类的所有成员。


    正确答案: D
    解析: 暂无解析

  • 第13题:

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

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

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

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

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


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

  • 第14题:

    下面关于继承机制的描述中,不正确的是( )。

    A.派生类不仅可以继承基类的成员,也可以添加自己的成员

    B.设置protected成员是为派生类访问基类成员之用

    C.采用不同的继承方式,将限制派生类对基类成员的访问

    D.采用私有继承,派生类只能得到基类的公有成员


    正确答案:D
    解析:本题主要考察C++中继承机制的特点。C++中允许利用已有的数据类型来定义新的数据类型,这种机制称为继承机制,并称已存在的用来派生新类的类称为基类,由已存在的类派生出的新类称为派生类。派生类有3种继承方式可以采用,即public、private和protected方式。派生类除了继承基类中的数据成员和成员函数外,还可以添加具有自身特点的成员,这是继承机制的真正用意所在。因此选项A的叙述正确。采用不同的继承方式,将限制派生类对基类成员的访问权限,因此选项C的叙述正确。对于类本身,protected成员和private成员对外的访问权限是相同的,即外界函数都无法直接访问这两类成员。对于类作为基类被继承产生派生类时,protected成员又和public成员性质相同,即在所有继承方式下都可以被派生类所继承,在public继承时可以被派生类对象访问,在protected和private继承方式下无法被派生类的子类访问。这也正是C++设置protected访问权限成员的真正用途,即为派生类继承基类隐蔽成员之用途。因此选项B的叙述正确。

  • 第15题:

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

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

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

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

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


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

  • 第16题:

    关于多继承二义性的描述中,错误的是( )。

    A.一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性

    B.解决二义性的最常用的方法是对成员名的限定法

    C.基类和派生类中同时出现的同名函数,也存在二义性问题

    D.一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,可能出现二义性


    正确答案:C

  • 第17题:

    下列关于二定义性的说法错误的是 ______。

    A.派生类中的成员与基类的成员同名,在调用时可能存在二义性

    B.派生类的二个基类是有同名成员,调用这一成员时可能产生有二义性

    C.派生类的二个基类是从同一共同基类派生出来,调用基类的成员时可能存在二义性

    D.使用成员限定可解决二义性问题


    正确答案:B

  • 第18题:

    下列是关于继承的说法,正确的是______。

    A.子类继承父类,子类就拥有了父类的全部成员,包括基类的构造函数和析构函数

    B.当子类继承父类后,子类可以访问父类的全部成员

    C.抽象类不能被继承

    D.派生类可能含有与基类同名的数据成员或同名同参数的成员函数,因此可能产生二义性。C++采用将当前类作为默认作用域的方法来消除二义性。若要在派生类中访问基类的成员,则必须使用作用域运算符“::”指定所使用的成员的类名


    正确答案:D
    解析:当子类继承父类后,子类可以访问父类中除私有成员外的全部成员。父类的构造函数和析构函数是不能被子类继承的。在C++中,当子类有多个基类时,调用基类构造函数的格式为:派生类名>::派生类名>(参数表):基类名1>参数表1>,基类名2>参数表2>…,{派生类构造函数体;}在Java中,在创建子类对象时若希望对父类中的成员变量进行初始化,就要在于类构造方法中利用super()调用父类的构造方法,并且必须将这条语句作为子类构造方法中的第一条语句。抽象类是含有抽象函数或抽象方法的类,它不能被实例化,但是可以被继承。实际上,抽象类主要就是用来派生子类。当派生类含有与基类同名的数据成员或同名同参数的成员函数时,可能产生二义性。C++采用将当前类作为默认作用域的方法来消除二义性。若要在派生类中访问基类的成员,则必须使用作用域运算符“::”指定所使用的成员的类名。

  • 第19题:

    关于私有继承,下列说法错误的是()。

    • A、基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的其他成员可以直接访问他们。
    • B、基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的其他成员不能直接访问他们。
    • C、基类的私有成员,派生类的成员和派生类的对象都无法访问。
    • D、派生类的对象无法访问基类的所有成员。

    正确答案:B

  • 第20题:

    当保护继承时,基类的()成员在派生类中成为保护成员,派生类对象不能直接访问基类的()成员。


    正确答案:公有和保护;任何

  • 第21题:

    下列关于类的继承描述中,正确的是()

    • A、派生类公有继承基类时,可以访问基类的所有数据成员,调用所有成员函数。
    • B、派生类也是基类,所以它们是等价的。
    • C、派生类对象不会建立基类的私有数据成员,所以不能访问基类的私有数据成员。
    • D、一个基类可以有多个派生类,一个派生类可以有多个基类。

    正确答案:D

  • 第22题:

    单选题
    关于保护继承,下列说法错误的是()。
    A

    保护继承的特点是基类的所有公用成员和保护成员都成为派生类的保护成员。

    B

    派生类对象不能访问基类中的任何成员。

    C

    派生类的对象可以访问基类的公有成员。

    D

    保护继承的派生类和私有继承的派生类,对基类成员访问属性是相同的。


    正确答案: A
    解析: 暂无解析

  • 第23题:

    单选题
    下列关于类层次中重名成员的描述,错误的是()
    A

    C++允许派生类的成员与基类成员重名

    B

    在派生类中访问重名成员时,屏蔽基类的同名成员

    C

    在派生类中不能访问基类的同名成员

    D

    如果要在派生类中访问基类的同名成员,可以显式地使用作用域符指定


    正确答案: A
    解析: 暂无解析