首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
admin
2021-06-10
50
问题
有如下的类声明:
#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/43fp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下类定义:classBase{public:voidfun(){cout
要定义一个引用变量p,使之引用类MyClass的一个对象,正确的定义语句是()。
下列函数原型声明中,错误的是
关于函数重载,下列叙述中错误的是()。
设二叉树如下:则中序序列为
下列关于类成员对象构造函数调用顺序的叙述中,正确的是()。
下面不属于软件设计阶段任务的是
某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为
用树形结构表示实体之间联系的模型是()。
随机试题
关于儿童生长发育的描述中,不符合儿童生长发育规律的是
均质圆柱体半径为R,质量为m,绕关于对纸面垂直的固定水平轴自由转动,初瞬时静止(G在O轴的沿垂线上),如图所示,则圆柱体在位置θ=90°时的角速度是:
销毁爆炸性物品的方法不包括()。
下列有关招标投标签订合同的说明,正确的有()。
根据《建设工程施工劳务分包合同(示范文本)》,劳务报酬可按( )方式结算。
关于工作扩大化的说法,错误的是()。
看见路上的垃圾绕道走开,这种行为是()。
辛亥革命失败的原因有()。
创建名为“利润清单”的工作表(内容如下表所示),按照题目要求完成后,用Excel保存功能直接存盘。要求:1.全部单元格的行高、列宽设为最合适的高度和宽度,表格要有可视的外边框和内部边框(格式任意),表格内容水平居中。2.表中利润需要用公
有如下程序代码:PrivateSubForm_Click()DimflagAsBooleanDimNumAsIntegerflag=TrueNum=0DoDoW
最新回复
(
0
)