C++语言程序设计

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

题目

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

  • A、一个派生类对象可以拥有多个直接或间接基类的成员
  • B、在多继承时不同的基类可以有同名成员
  • C、对于不同基类的同名成员,派生类对象访问它们时不会出现二义性
  • D、对于不同基类的不同名成员,派生类对象访问它们时不会出现二义性
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

当派生类中有和基类一样名字的成员时,如果没有使用类名加以限制,则()。

A、基类的同名成员将覆盖派生类的成员

B、将产生二义性

C、派生类的同名成员将覆盖基类的成员

D、是不允许的


参考答案:C

第2题:

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

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

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

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

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


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

第3题:

下列关于虚基类的说法错误的是()。

A、有引入虚基类的目的是解决二义性的问题;

B、因为虚基类可被多个派生类继承,因此可以有多个副本以适应不同的派生类;

C、若某个类被说明为虚基类,则被重复继承的该类成员在派生类对象中只有一个副本;

D、在派生类对象创建时,要保证虚基类的构造函数只被调用一次。


参考答案:B

第4题:

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

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

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

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

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


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

第5题:

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

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

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

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

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

A.

B.

C.

D.


正确答案:B

第6题:

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

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

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

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

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


正确答案:B
B。【解析】派生类成员函数不能访问基类的private成员,只能由基类的对象来访问。这才体现了C++的数据封装特性。

第7题:

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

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

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

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

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


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

第8题:

以下关于派生机制的描述中,不正确的是

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

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

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

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


正确答案:D
解析:继承方式不同,派生类能够访问的基类的成员数量也不同。继承方式有三种:公有继承,私有继承和保护继承,每种继承方式结合成员函数的类型可以组合成不同的访问级别,从而提供了灵活多样的派生类访问基类的权限。

第9题:

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

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

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

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

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


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

第10题:

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

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

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

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

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


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

更多相关问题