单选题下面的描述中,正确的是(  )。A virtual可以用来声明虚函数B 含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类C 即使基类的构造函数没有参数,派生类也必须建立构造函数D 静态数据成员可以通过成员初始化列表来初始化

题目
单选题
下面的描述中,正确的是(  )。
A

virtual可以用来声明虚函数

B

含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类

C

即使基类的构造函数没有参数,派生类也必须建立构造函数

D

静态数据成员可以通过成员初始化列表来初始化

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

第1题:

下面关于虚函数的描述,错误的是( )。

A.在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数

B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚数

C.虚函数可以是另一个类的友元函数,但不能是静态成员函数

D.基类中说明的纯虚函数在其任何派生类中都必须实现


正确答案:B
基类中说明的虚函数,在派生类中自然就是虚函数,对于纯虚函数必须在后面继承的派生类中给出具体的实现;静态成员函数不能进行动态联编,所以虚函数不能是静态的。

第2题:

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

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

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

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

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


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

第3题:

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

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

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

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

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


正确答案:C

第4题:

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

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

B.多次

C.二次

D.一次


正确答案:D
解析:本题考核虚基类以及构造函数。使用虚基类解决二义性问题的关键是在派生类中只产生一个虚基类对象。虚基类子对象由最派生类的构造函数通过调用虚基类的构造函数进行初始化(最派生类的构造函数的成员初始化列表中必须列出对虚基类构造函数的调用,否则,表示使用该虚基类的缺省构造函数)。由于最派生类总是相对,因此,从虚基类直接或间接派生的派生类中的构造函数的成员初始化列表中都要列出对虚基类构造函数的调用。但只有用于建立对象的最派生类的构造函数才调用虚基类的构造函数,此时最派生类的所有基类中列出的对虚基类的构造函数的调用在执行过程中都被忽略,从而保证对虚基类子对象只初始化一次。

第5题:

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

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

B.多次

C.两次

D.一次


正确答案:D

第6题:

在基类中没有具体定义,但要求任何派生类都自已定义版本的虚函数是()。

A.虚析构函数;

B.构造函数;

C.纯虚函数;

D.静态成员函数。


参考答案:C
析:如果虚基类的派生类不重定义虚基类的纯虚函数,该派生类也将虚化。

第7题:

下列关于派生类的构造函数的说法中,哪个是错误的 ______。

A.派生类不继承基类的构造函数和赋值运算

B.派生类的构造函数可以调用基类的构造函数

C.派生类的构造函数先于基类的构造函数执行

D.在建立派生类的实例对象时,必须调用基类的构造函数来初始化派生类对象中的基类成员


正确答案:C

第8题:

下面描述中正确的是 ______。

A.virtual可以用于声明虚函数

B.含有纯虚函数的类不可以用来创建对象

C.即使基类的构造函数没有参数,派生类也必须建立构造函数

D.静态数据成员可以通过成员初始化列表来初始化


正确答案:A

第9题:

是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。

A.虚析构函数

B.构造函数

C.纯虚函数

D.静态成员函数


正确答案:C

第10题:

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

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

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

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

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


正确答案:B
解析:本题考核虚基类的初始化。从虚基类直接或间接派生的派生类的构造函数的成员初始化列表中都要列出对虚基类构造函数的调用,但只有用于建立对象的派生类的构造函数调用虚基类的构造函数,而该派生类的所有基类中列出的对虚基类的构造函数的调用在执行中被忽略,从而保证了对虚基类子对象只初始化一次。

更多相关问题