首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #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
33
问题
有如下的类声明:
#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://kaotiyun.com/show/0syp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
计算斐波那契数列第n项的函数定义如下:intfib(intn){if(n==0)return1;elseif(n==1)return2;e
有如下程序:#includeusingnamespacestd;voidfun(inti){cout
有如下程序:#includeusingnamespacestd;intfun1(intx){return++x;}intfun2(int&x){re
有如下类定义:classXX{intxdata;public:XX(intn=0):xdata(n){}};classYY:p
有如下类定义:classXX{intxdata;public:XX(intn=0):xdata(n){}};classYY:p
下列选项中,与实现运行时多态性无关的是
下列选项中,不是C++关键字的是
下列选项中,正确的C++表达式是
下列选项中,正确的C++表达式是
随机试题
激素
对卫生行政机关工作人员的具体行政行为不服申请行政复议,有权审理的是
女性,28岁,寒颤,发热,腰痛伴尿频、尿急2天,体温39.2℃,心肺无异常。肝脾肋下未触及。两侧肋脊角有叩击痛。尿液检查:蛋白(-),镜检红细胞3~5/HP,白细胞10~15/HP,最可能的诊断为
阿托品化的指征不包括
在高峰强度持续时间短时,骨料生产能力根据()确定。
银行采取常规清收手段无效而向人民法院提起诉讼后,人民法院一般应在立案之日起()内作出判决。
同业拆借活动都是在金融机构之间进行,对参与者要求严格,因此,其拆借活动基本上都是()拆借。
【2016北京NO.46~50】纽约的曼哈顿城区是全世界高楼密度最大的地方,狭窄的街道却能看到阳光,这里是世界上行人密度最高的地方,但行人却不会感到拥堵。曼哈顿城区林立的高楼大都是竹笋般的退台式建筑,保证了阳光的照射路径,街道对行人也非常友好,摩天大楼纷纷
Intheofficeyouwillseethesign"______".
我在山坡的小屋里,悄悄掀起窗帘,窥见园中大干世界,一片喧闹。
最新回复
(
0
)