首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
admin
2021-05-06
16
问题
有如下的类声明:
#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/RFfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若有定义“intx=4,y=5;”,则表达式“y>x++?x--:y++”的值为()。
有如下函数模板定义:templateTfunc(Tx,Ty){returnx*x+y*y;}在下列对func的调用中,错误的是()。
若已定义了类Vehicle,则下列派生类定义中;错误的是()。
下列关于虚函数的说明中,正确的是()。
下列有关继承和派生的叙述中,正确的是()。
下列说法中错误的是()。
有如下语句序列:charstr[10];cin>>str;当从键盘输入“Ilovethisgame”时,str中的字符串是()。
下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。
在软件开发中,需求分析阶段产生的主要文档是()。
在数据库中,产生数据不一致的根本原因是
随机试题
下列______是WindowsXP操作系统的默认用户。
从逻辑功能上来划分,可以把计算机网络划分为________。
A.肠碱性环境灭活B.遇胃酸失活C.被消化液分解D.在消化道吸收差E.在肝脏快速分解毒毛花苷K不能口服的原因
A.叠连B.凝集C.粘连D.聚集E.凝固血液由溶胶状态变为凝胶状态称为
钢结构涂装后4h内,应加以保护,使其免受()。
以下关于个人质押贷款期限表述不正确的是()。
服务对象反复恳求社会工作者代替他们做决定,社会工作者遇到的这个问题是()。
道德教育的认知模式是现代教育理论中流行最为广泛、占据主导地位的教育学说。()
RarelyhavetheChristmasresultsforBritain’ssupermarketsbeenawaitedwithsuchanxiety.Mostofthem,especiallythemarke
Inthe1960stheWestCoastbecameanimportantcenterforrockmusic.LosAngelesandSouthernCaliforniaarefamousforsunshi
最新回复
(
0
)