首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #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
19
问题
有如下的类声明:
#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://jikaoti.com/ti/qpA0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有关构造函数的说法中错误的是
有如下程序:#include<iostream>usingnamespacestd;classx{protected:inta;public:x(){a=1;}
下列叙述中正确的是
在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系()。
按照标识符的要求,下列选项中,()符号不能组成标识符。
下列关于运算符重载的表述中,错误的是
下列有关继承和派生的表述中,正确的是
设二叉树如下:则后序序列为
随机试题
______thisafternoon,shewouldgetthereonSunday.
急性化脓性中耳炎与卡他性中耳炎的鉴别要点是:
患者小便热涩疼痛,尿色深红,或夹有血块。应首先考虑的是
建设工程项目组织协调的范围包括()。
发起人协议不仅需要各方书面签字,还要加盖法人章。()
近期传言某银行支行因为一笔违规批贷可能导致重大损失,记者李某找到他在该支行的一位朋友张某欲进行采访。在这种情况下,()。
某街道当前正在开展“十佳社区评选活动”,评选方法是选择8个方面,包括:物业管理、人际关系、清洁程度、绿化程度、建筑设施安全性、社会治安指标等等.评以1分至10分之间的某一分值,然后求得8个分值的平均数即该社区得分。以下哪项是实施上述活动需要预设的
设的值.
执行USEscIN0命令的结果是()。
Abortion.Thewordalonecausescivilconversationtofleetheroom.Thisislargelybecausetheprochoiceandpro-lifeposition
最新回复
(
0
)