首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #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
19
问题
有如下的类声明:
#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/8Cfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下类定义:classSample{public;Sample(intx):ref(x){}//①private:Sample():ref(0){}//②staticint
一个栈的初始状态为空。现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是()。
下列说法中错误的是()。
一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是( )。
一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是()。
数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和()。
公司的开发人员可以同时参加多个项目的开发,则实体开发人员和实体项目间的联系是
某二叉树的中序序列为BDCA,后序序列为DCBA,则前序序列为
关于在调用模板函数时模板实参的使用,下列表述正确的是()。
随机试题
空速大,接触时间短;空速小,接触时间长。()
关于婚姻成立的形式要件,当代各国有不同的立法例,其种类主要有____________、____________、____________。
下列哪一项不是牛膝的功效
在建设工程设计施工一体化/总承包合同中,对争议的处理,一般以()作为解决的最终方式。
菲茨和波斯纳认为,动作技能分为几个阶段,即()
=_______
(1992年)当x→1时,函数的极限()
数据库表的字段可以定义默认值,默认值是()。
•Youwillheartheorganiserofanannualconferenceattendedbythesalesrepresentativesofalargecompany.Heistellingth
A、Themanlikestheclassicalartinahigherdegree.B、Themanlikespopmusicbetter.C、Themanlikesneithermodernnorclass
最新回复
(
0
)