首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #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
11
问题
有如下的类声明:
#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全国计算机二级
相关试题推荐
有如下类定义:classMyBase{intk;public:MyBase(intn=0):k(n){}intvalue()const{returnk;}};cla
有三个关系R、S和T如下:则由关系R和S得到关系T的操作是()。
某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为()。
内部格式控制操作函数是在头文件()中定义的。
下列关于默认参数的叙述中,错误的是
下面是重载为非成员函数的运算符函数原型,其中错误的是
下列关于重载运算符错误的是
下列对于软件测试的描述中正确的是()。
在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。
将E-R图转换到关系模式时,实体与联系都可以表示成()。
随机试题
简述语法形式的分类。
药物不良反应因果关系评定确定程度是采用
关于起重机械事故的应急措施,描述有误的是()。
能够提供企业某一类经济业务增减变化较为详细会计信息的账簿是()。
由偶然原因造成的质量变异()。
日本广岛大学教授冈德雄把课堂上积极的气氛称为()
重视:人才
五台山:山西
在社会主义初级阶段,允许一部分人和一部分地区先富起来,允许在富裕的道路上存在先富与后富,存在富裕程度的差别,承认在一定时期内允许富裕程度差别的扩大。其根据是( )
对10个候选人进行选举,现有一个100条记录的选票文件ENG50.1N,其数据存放格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推。每一位候选人的记录内容均为字符0或1,1表示此人被选中,0表示此人未被选
最新回复
(
0
)