C++语言程序设计

一个类的层次结构中,定义有虚函数,并且都是公有继承,在下列情况下,实现动态联编的是()。A、使用类的对象调用虚函数B、使用类名限定调用虚函数,其格式如下:<类名>::<虚函数名>C、使用构造函数调用虚函数D、使用成员函数调用虚函数

题目

一个类的层次结构中,定义有虚函数,并且都是公有继承,在下列情况下,实现动态联编的是()。

  • A、使用类的对象调用虚函数
  • B、使用类名限定调用虚函数,其格式如下:<类名>::<虚函数名>
  • C、使用构造函数调用虚函数
  • D、使用成员函数调用虚函数
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列关于构造函数和析构函数的描述,错误的是( )。

A.析构函数中调用虚函数采用静态联编

B.对虚析构函数的调用可以采用动态联编

C.当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数

D.构造函数可以声明为虚函数


正确答案:D
解析: 构造函数的主要作用是对数据成员初始化。构造函数不能声明为虚函数,这是因为在执行构造函数时类对象还未完成建立过程,当然谈不上函数与类对象的关联。

第2题:

构造函数与析构函数所调用的虚函烽是所在类的函数,因此调用时实现的是【 】联编。


正确答案:静态
静态

第3题:

下列关于虚函数的说明中,正确的是 <br>

A .从虚基类继承的函数都是虚函数 <br>

B .虚函数不得是静态成员函数 <br>

C .只能通过指针或引用调用虚函数 <br>

D .抽象类中的成员函数都是虚函数 <br>


正确答案:B

第4题:

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

A.设置虚基类的目的是为了消除二义性

B.虚基类的构造函数在非虚基类之后调用

C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用

D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调,用派生类的构造函数


正确答案:B
解析: 虚基类的引入就是为了消除二义性,其构造函数的调用仍然是按照继承的顺序进行的,对于多个虚基类则按它们说明的次序调用,虚基类的构造函数选于非虚基类的构造函数执行。

第5题:

下面关于构造函数和析构函数的描述中,错误的是( )。

A.析构函数可以声明为虚函数

B.对虚析构函数的调用可以采用动联编

C.一个类的虚函数仅对派生类中重定义的函数起作用,对其他函数没有影响

D.构造函数可以声明为虚函数


正确答案:D

第6题:

要使用动态联编,必须使用()调用虚函数。

A、类名

B、对象名

C、派生类指针

D、基类指针


参考答案:D

第7题:

在一个成员函数内调用一个虚函数时,对该虚函数的调用进行______联编。


正确答案:动态
动态

第8题:

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

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

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

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

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


正确答案:C

第9题:

定义对象数组a[2]时,要调用2次构造函数;生成*p的对象时,要调用一次构造函数,故答案为3。

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

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

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

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


正确答案:C
解析:使用虚基类的目的就是为了解决多继承路径下对基类成员的访问的二义性问题。一旦继承虚基类,那么在构造派生类对象时,虚基类构造函数就只调用一次。派生类对象调用构造函数和普通类对象一样,都是先调用基类构造函数,然后调用派生类构造函数。

第10题:

构造函数与析构函数所调用的虚函数是【 】的函数, 因此调用时实现的是【 】联编。


正确答案:所在的类静态
所在的类,静态

更多相关问题