首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
admin
2020-06-29
34
问题
有如下的类声明:
#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);
plot(cc);
rb.disp();
return 0;
}
运行这个程序的输出是
选项
A、AAC
B、AAB
C、BCC
D、BCB
答案
C
解析
程序定义了类AA,成员函数disp()为虚函数;类BB公有继承AA,重新定义了disp()函数;类CC公有继承BB,同样重新定义了disp()函数;类BB中,虽然disp()未用virtual修饰,但是由虚函数性质可知,BB中的disp()函数仍然是虚函数;main()函数中,创建BB对象bb,CC对象cc,使用cc初始化BB类引用rb,然后调用plot函数;plot函数的形参是AA类的引用,通过AA类引用调用disp函数,满足多态性条件,将根据引用所指对象的类型来决定调用哪个disp函数;所以plot(bb)调用类BB中的disp函数,plot(cc)调用CC中的disp函数;输出分别为:"B"、"C";另外由于rb为BB类引用,所指对象是cc,所以运行rb.disp()时调用的是CC中的disp()函数,输出"C",综上,程序输出为:"BCC";答案为C。
转载请注明原文地址:https://www.kaotiyun.com/show/0syp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列关于函数模板的叙述中,错误的是
下列枚举类型的定义中,包含枚举值5的是
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明IntSet是一个用于表示正整数集合的类。IntSet的成员函数Intersection的功能是求当前集合与另一个集合的交集。请完成成员函数Intersection。在mai
有如下类声明和函数声明classBase{intm;public:intn;protected:intp;};classDer
有如下两个类定义:classAA{};classBB{AAv1,*v2;BBv3,*v4;};其中定义错误的成员变量是
有如下类定义:classMyClass{public:MyClass(doubled=0.0):val(d){}______________/
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。其中有向量基类VectorBase、向量类Vector和零向量类ZeroVector的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。该程序正确输出结果应为:(1.2.
若有定义语句"doublea=2/3.0;",则语句"cout
在下列选项中,不允许作为C++标识符的是
下列选项中,不是C++关键字的是
随机试题
关于奥伯(Ober)试验,下列说法哪项正确
“胸痹”一名由何书正式提出
男性,35岁。服用吲哚美辛10片后胃痛,今晨呕咖啡样胃内容物约250ml来诊,既往无胃病史。则首选的检查
某患者PT、APTT和TT均延长,可能缺乏的凝血因子是
A.始发期B.早期病变C.病损确立期D.进展期E.静止期临床上出现典型牙龈炎表现为什么期
A.血淋B.膏淋C.热淋D.黄痘E.痰饮石韦善治
在收购要约期限届满前一定期限内,收购入不得变更收购要约,但出现竞争要约的除外。该期限是()。
所谓抛补看涨期权是指()。
降低风险加权资产的方法,主要是调整结构,减少风险权重较高的资产,增加风险权重较低的资产。()
已知平面Ⅱ:x一4y+2z+9=0,直线,试求在平面Ⅱ内,经过L与Ⅱ的交点且与L垂直的直线方程.
最新回复
(
0
)