首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
admin
2021-09-05
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);
cc.disp();
rb.disp();
return 0;
}
运行这个程序的输出是
选项
A、ACC
B、ACB
C、BCC
D、BCB
答案
A
解析
程序定义了类AA,成员函数disp是虚函数;类BB公有继承AA,重新定义了函数disp,由虚函数的性质可知,即使BB中未使用virtual修饰disp,函数disp仍然是虚函数;类CC公有继承了BB,同样重新定义了虚函数disp;main函数中定义了BB类对象bb,CC类对象cc,BB类引用rb,rb被初始化指向cc;然后调用plot函数,由于plot函数的形参是AA类对象a,不满足多态性中调用者必须要是引用或者指针类型的条件,所以无论实参是bb或cc,a.disp()调用的都是AA类中的函数disp,输出"A";cc.disp()显然调用的是类CC中的函数,输出"C";rb.disp(),由于rb是引用,指向的是类CC对象cc,所以这里由多态性可知调用的是CC类中的disp函数,输出"CC";程序输出结果为:"ACC";答案为A。
转载请注明原文地址:https://kaotiyun.com/show/B65p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则()。
下列叙述中正确的是()。
下列关于函数重载的叙述中,错误的是()。
if语句的语法格式可描述为:格式1:if(<条件>)<语句>或格式2:if(<条件>)<语句1>else<语句2>关于上面的语法格式,下列表述中错误的是()。
关于运算符重载,下列表述中正确的是()。
若MyClass是一个类名,且有如下语句序列MyClassc1,*c2;MyClass*c3=newMyClass;MyClass&c4=c1;上面的语句序列所定义的类对象的个数是()。
下列关于输入流类成员函数getline()的描述中,错误的是()。
在面向对象方法中,不属于“对象”基本特点的是()。
对C++编译器区分重载函数无任何意义的信息是()。
开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()。
随机试题
要成为高效团队的最后一个必需条件是_________。
组成药物中含有人参、白术、茯苓、炙甘草的方剂是()
细菌经紫外线照射会发生DNA损伤,为修复这种损伤,细菌合成DNA修复酶的基因表达增强,这种现象称为
A、水利尿B、渗透性利尿C、尿崩症D、尿失禁E、延髓受损静脉滴注甘露醇可引起
计算单代号搭接网络的时间参数时,若某项中间工作的最早开始时间为负值,则应当()。
在Excel中,要在单元格中输入公式,应先输入“=”,再输入表达式。()
凡《证券法》中界定的内幕信息不能成为证券投资分析的信息来源。()
2005年全国劳动模范和先进工作者表彰大会于4月30日在北京隆重举行,受表彰者包括30多位私营企业主和20多位个体户,这是他们第一次被纳入全国劳模候选范围。()
J.Martin将建立企业模型的过程分为3个阶段,下述Ⅰ.开发表示企业各职能范围的模型Ⅱ.扩展模型,使它们表示企业各处理过程Ⅲ.定义企业处理过程所需数据类Ⅳ.继续扩展模型,使它能表示企业各处理过程哪个不属于建立企业模
DifferentTypesofLearningI.ThedefinitionoflearningA.AprocessofpeopleexperiencingrelationshipbetweeneventsB.【B1】
最新回复
(
0
)