首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
admin
2015-07-22
64
问题
有如下的类声明:
#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/IjNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,而从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求的是指()。
在关系运算中,【】运算是对两个具有公共属性的关系所进行的运算。
设inta=l,b=2;,则(a++)+b和a+++b这两个表达式的值分别为
非成员函数应声明为类的【 】函数才能访问这个类的private成员。
一棵二叉树第六层(根结点为第一层)的结点数最多为【 】个。
虚函数必须是类的【】。
在关系运算中,【】运算是对两个具有公共属性的关系所进行的运算。
重载输入流运算符>>必须使用的原型为
下列叙述中正确的是
下列语句中不是死循环的是
随机试题
简述公务员考核的原则。
A.藿香正气散B.玉枢丹C.葛根芩连汤D.香连丸治疗湿热泄泻的主方是
患者男,28岁。O型血,患再生障碍性贫血半年,血红蛋白70g/L,白细胞2.2×109/L,血小板20×109/L。该患者早晨刷牙时发现出血,应立即给予的措施是
下列关于阑尾的描述正确的是
对宫颈黏液结晶描述不正确的是
关于幕墙工程后置埋件(锚栓)施工要求的说法,正确的是()。
下列关于党的领导、人民民主专政和依法治国三者关系的说法中,表述正确的是()。①依法治国的本质是保障人民当家作主②党的领导是人民当家作主和依法治国的根本保证③依法治国是党领导人民治理国家的基本方略④人民当家作主是社会主义民主政治的本质要求
AstheSenatepreparestovoteonlegislationtoempowertheFoodandDrugAdministrationtoregulatetobaccoproducts,itsmemb
输入VB源程序时,若一个命令行中包含两个语句,则两个语句之间的分隔符应使用
若有以下程序#include#defineS(x)(x)*(x)#defineT(x)S(x)/S(x)+1main(){intk=3,j=2;printf("%d,%d\n",S(k+j),T(k+j));}则程序的输出结果是()
最新回复
(
0
)