C语言程序设计

“虚基类”是通过什么方式定义的?如果类A有派生类B、C,类A是类B虚基类,那它也一定是类C的虚基类吗?为什么?

题目

“虚基类”是通过什么方式定义的?如果类A有派生类B、C,类A是类B虚基类,那它也一定是类C的虚基类吗?为什么?

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列关于虚基类的描述中,错误的是( )。

A.使用虚基类可以消除由多继承产生的二义性

B.构造派生类对象时。虚基类的构造函数只被调用一次

C.声明“classB:virtualpublicA”说明类B为虚基类

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


正确答案:C
C。【解析】本题针对虚基类的定义及特点考查。虚基类的声明为“class<类名>:virtual<继承方式><基类名>”,即本题的A为虚基类。

第2题:

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

A.析构函数可以被继承

B.虚函数不能被继承

C.派生类可以有多个基类

D.纯虚基类的子类可以是虚基类


正确答案:B
解析: 本题考查关于C++语言基类中虚函数的继承问题。C++语言中基类的虚函数是可以被派生类继承的。

第3题:

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

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

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

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

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


参考答案:B

第4题:

关于纯虚函数和抽象类的描述中,( )是错误的。

A.纯虚函数是一种特殊的虚函数,它没有具体的定义

B.抽象类是指具有纯虚函数的类

C.一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类

D.抽象类只能作为基类来使用,其纯虚函数的定义由派生类给出


正确答案:C

第5题:

在基类中有定义的纯虚函数,它要求在派生类中定义,而且基类不能用以说明对象,则该类为( )。

A.虚基类

B.抽象类

C.虚函数类

D.模板类


正确答案:B
解析:类中一旦有纯虚函数的定义那么这个类就再也不能创建此类的对象了,我们把这种类叫做抽象类。

第6题:

下列关于虚基类的描述中错误的是

A.虚基类子对象的初始化由最派生类完成

B.虚基类子对象的初始化次数与虚基类下面的派生类个数有关

C.设置虚基类的目的是消除二义性

D.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数调用


正确答案:B
解析:虚基类主要是为了消除在多重继承中的二义性问题。虚基类对象的初始化次数只于对象的多少有关,与类的层次结构是没有关系的。故本题正确答案为B。

第7题:

下列关于虚基类的描述中,错误的是

A.使用虚基类可以消除由多继承产生的二义性

B.构造派生类对象时,虚基类的构造函数只被调用一次

C.声明“class B:virtual public A”说明类B为虚基类

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


正确答案:C
解析:虚基类主要解决在多重继承时,基类可能被多次继承的问题,虚基类提供了一个基类给派生类。class B:virtual public:A中很明显B继承了虚基类A,所以选项c)错误。

第8题:

( 23 )下列关于虚基类的描述中,错误的是

A )使用虚基类可以消除由多继承产生的二义性

B )构造派生类对象时,虚基类的构造函数只被调用一次

C )声明 “ class B : virtual public A ” 说明类 B 为虚基类

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


正确答案:C

第9题:

带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化( )。

A.与虚基类下面的派生类个数有关

B.多次

C.两次

D.一次


正确答案:D

第10题:

下面关于纯虚函数和抽象类的描述中, ______ 是错误的。

A.纯虚函数是一种特殊的虚函数,它没有具体意义

B.一个基类中的说明有纯虚函数,该基类的派生类一定不再是抽象类

C.抽象类只能作为基类来使用,其纯虚函数的定义由派生类给出

D.抽象类是指具有纯虚函数的类


正确答案:B

更多相关问题