首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
admin
2021-06-10
68
问题
有如下的类声明:
#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://www.kaotiyun.com/show/43fp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
对如下二叉树进行后序遍历的结果为()。
有如下程序:#inc1ude<iostream>usingnamespacestd;classAA{intn:public:AA(intk):n(k){}intget(){
有如下程序:#includeusingnamespacestd;classTV{public:TV(ints=41):size(s){}
设有如下关系表:则下列操作正确的是()。
将前缀运算符“--”重载为非成员函数,下列原型中能正确用于类中说明的是()。
当数据库中数据总体逻辑结构发生变化,而应用程序不受影响,称为数据的
静态数据成员是为()的数据。
数据流图中带有箭头的线段表示的是()。
在满足实体完整性约束的条件下()。
随机试题
血管内给药途径的药代动力学过程不包括()。
心肌肥大是心脏持久而有效的代偿方式。
反映企业盈利能力大小的指标有()。
下列各项不属于证券业从业人员的是( )。
古时的“四时”,是指()。
下列关于类、对象、属性和方法的叙述中,错误的是()。
以下是普通高中课程标准实验教科书《化学1》(苏教版)专题2第一单元“氯气的生产原理”部分内容。氯气的生产原理从海水晒盐得到食盐,除去杂质后,不仅可作调料,还可作为工业原料。在19世纪,科学家发明了电解食盐水制取氯气(chlorinegas)的方法,为
循环经济
Paulisan______worker,andrarelydoeswellinexaminations.Howeverheoftenrefusesourhelp.
Toomuch______toX-rayscancauseskinbums,cancerorotherdamagetothebody.
最新回复
(
0
)