首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #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
70
问题
有如下的类声明:
#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全国计算机二级
相关试题推荐
必须用一对大括号括起来的程序段是()。
在C++语言系统中,用于输入数据所使用的标识符cin是
要定义一个引用变量p,使之引用类MyClass的一个对象,正确的定义语句是()。
要定义整型数组x,使之包括初值为0的3个元素,下列语句中错误的是()。
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,其中有整数栈类IntList、顺序栈类SeqList和链接栈类LinkList的定义。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:46
下列不属于软件工程3个要素的是()。
设二叉树如下:则中序序列为
在进行逻辑设计时,将E-R图中实体之间联系转换为关系数据库的
一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为()。
将E-R图转换到关系模式时,实体与联系都可以表示成()。
随机试题
关于便血下列叙述哪一项是正确的
不属于光电效应的产物的是
在施工阶段进度控制中,编制年度、季度、月度工程综合进度计划属于()的内容。
下列工程项目总投资构成项中,应计入单项工程投资估算指标中的是()。【2013年真题】
污水厂污泥脱水的主要方法有()。
土石坝施工的土料填筑压实参数主要包括()。
复式预算是指把预算年度内的全部财政收支按(),分别汇编两个或两个以上的预算。
包括中国人民在内的亚洲各国人民始终反对日本领导人参拜靖国神社,认为日本领导人的这一举动严重()了战争受害国人民的感情。
任何结果都不可能凭空出现,它们的背后都是有原因的;任何背后有原因的事物都可以被人认识,而可以被人认识的事物都必然不是毫无规律的。根据以上陈述,以下哪项为假?
WhichofthefollowingnewspapersbelongstoAustralia?
最新回复
(
0
)