首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
admin
2021-02-22
58
问题
有如下的类声明:
#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/GBfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下面对于友元函数描述正确的是()。
请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程proj1。该工程中包含程序文件main.cpp,其中有类CDate(“日期”)和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正
下列各组类型声明符中,含义相同的一组是()。
某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为
有三个关系R、S和T如下:则由关系R和S得到关系T的操作是
模板对类型的参数化提供了很好的支持,因此()。
下列关于模板的叙述中,错误的是()。
下面关于常成员函数的说法中正确的是()。
在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是()。
下列方法中,不属于软件调试方法的是()。
随机试题
具有“蚯蚓头”和毛状叶基,断面有裂隙,质松,气特异,味微甘的是
痈常发生在身体的
霍乱患者最早出现的病理生理改变是
下列应计入建筑安装工程费用税金的包括()。
某环境影响评价工程师脱离环境影响评价及相关业务工作岗位2年,其将受到的处罚是()。
()是指贷款经营的盈利情况,是商业银行经营管理活动的主要动力。
教育问题
列宁说:“我们实行战时共产主义是一种功劳”“当时不这样做就不能在一个经济遭到破坏的小农家里战胜地主和资本家。”这里的“功劳”是指()。
A、 B、 C、 D、 [*]
在Python中,使用open()打开一个Windows操作系统D盘下的文件,路径名错误的是()。
最新回复
(
0
)