首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #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
42
问题
有如下的类声明:
#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全国计算机二级
相关试题推荐
请使用VC6或使用【答题】菜单打开考生文件夹pmj2下的工程pmj2,其中有矩阵基类MatrixBase、矩阵类Matrix和单位阵UnitMatrix的定义,还有main函数的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结
有如下类声明:classWd{inta;public:intb;intc;private:
若已经定义了如下的函数:intf(inti,charc);则下列函数中可以作为此函数的重载函数的是
有如下程序:#includeusingnamespacestd;voidfun(inti){cout
有如下类声明和函数声明classBase{intm;public:intn;protected:intp;};classDer
对C++编译器区分重载函数无任何意义的信息是()。
下列选项中,正确的C++表达式是
下列选项中,正确的C++表达式是
随机试题
欲提高降尘室的生产能力,主要的措施是()。
男,35岁,双下肢及眼睑水肿3天。查体:颜面及双眼睑浮肿,肝脾肋下未及,移动性浊音(+),双下肢凹陷性水肿。辅助检查:尿蛋白(++++),红细胞3~6个/HP;血清ALT、AST正常,总蛋白49g/L,球蛋白35g/L,胆固醇10mmol/L,BUN7mm
抑制性突触后电位
可导致小儿营养不良的原因不包括()
关于对求助者的尊重,错误的是()。
“张老师在期末阶段组织学生举办‘班级音乐会’,并要求学生写出对他人表演的观后感和建议。”这种评价方式是()。
在下列关系运算中不改变关系表中的属性个数但能减少元组个数的是()。
素数是指只含有两个因子的自然数(即只能被自身和1整除)。孪生素数,是指两个相差为2的素数。比如,3和5,17和19等。所谓的孪生素数猜想,是由希腊数学家欧几里得提出的,意思是存在着无穷对孪生素数。该论题一直末得到证明。近期,美国一位华人讲师的最新研究表明,
通常认为左撇子比右撇子更容易出事故。这是一种误解。事实上,大多数家务事故,大到火灾、烫伤,小到切破手指,都出自右撇子。以上哪项最为恰当地概括了上述论证中的漏洞?
网络营销是企业借助因特网进行_______的一种方式。
最新回复
(
0
)