首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
admin
2021-05-06
35
问题
有如下的类声明:
#include
using namespace std;
class AA{
public:
virtual void disp(){ cout<<’A’; }
};
class BB: public AA{
public:
void disp(){ cout<<’B’; }
};
class CC: public BB{
public:
virtual void disp(){ cout<<’C’; }
};
void plot(AA a){ a.disp(); }
int main(){
BB bb;
CC cc;
BB &rb=cc;
plot(bb);
cc.disp();
rb.disp();
return 0;
}
运行这个程序的输出是
选项
A、ACC
B、ACB
C、BCC
D、BCB
答案
A
解析
程序定义了类AA,成员函数disp是虚函数;类BB公有继承AA,重新定义了函数disp,由虚函数的性质可知,即使BB中未使用virtual修饰disp,函数disp仍然是虚函数;类CC公有继承了BB,同样重新定义了虚函数disp;main函数中定义了BB类对象bb,CC类对象cc,BB类引用rb,rb被初始化指向cc;然后调用plot函数,由于plot函数的形参是AA类对象a,不满足多态性中调用者必须要是引用或者指针类型的条件,所以无论实参是bb或cc,a.disp()调用的都是AA类中的函数disp,输出"A";cc.disp()显然调用的是类CC中的函数,输出"C";rb.disp(),由于rb是引用,指向的是类CC对象cc,所以这里由多态性可知调用的是CC类中的disp函数,输出"CC";程序输出结果为:"ACC";答案为A。
转载请注明原文地址:https://kaotiyun.com/show/RFfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列描述中,错误的是()。
若PAT是一个类,则程序运行时,语句’’PAT(*ad)[3];’’调用PAT的构造函数的次数是()。
下面不属于软件设计阶段任务的是()。
下列给定程序中函数fun的功能是:在字符串的最前端加入n个水号,形成新串,并且覆盖原串。字符串的长度最长允许为79。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件NODII.C中,不要改动main函数,不得增
数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的
在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是()。
设栈的存储空间为S(1:50),初始状态为top=51。现经过一系列正常的入栈与退栈操作后,top=20,则栈中的元素个数为()。
软件(程序)调试的任务是()。
程序调试的任务是
下列与队列结构有关联的是()。
随机试题
治疗咳嗽凉燥证的最佳方剂是()
通常电压数值稳定不变的生物电是
男,24岁农民,在乡村医院诊为急性阑尾炎,经保守治疗5天不见好,出现寒战、高热黄疸而转送我院就诊。应警惕阑尾炎合并
为炎症早期患者应用冷疗法的目的是使毛细血管收缩、血流减慢从而
真人养脏汤主治之久泻久痢的主要病机是
如果主送机关名称过多导致公文首页不能显示正文时,应当将主送机关名称移至版头。()
论教育在人的身心发展中的作用。
按照规则对人们行为规定和限定的范围和程度不同,可以把法律规则分为()
Whohasn’twantedtomasternotjusttwolanguagesbut10?TakeGiuseppeMezzofanti,a19th-centurypriestwhowassaidtobe【C1
以下关于Linux操作系统的描述中,正确的是()。
最新回复
(
0
)