首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #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
44
问题
有如下的类声明:
#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://www.kaotiyun.com/show/RFfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列关于运算符重载的叙述中,正确的是()。
对于一个类定义,下列叙述中错误的是()。
将运算符“+”重载为非成员函数,下列原型声明中,错误的是()。
在软件设计中,不属于过程设计工具的是()。
若字符指针p所指向的字符串为"abcdefg",在执行语句()。char*ap=newchar[strlen(p)+1];之后,ap指向的字符数组的元素个数为
下面不属于软件设计阶段任务的是
下列关于栈和队列的描述中,正确的是()。
软件开发过程主要分为需求分析、设计、编码与测试4个阶段。其中,产生“软件需求规格说明书”的阶段是()。
下列字符串中不能作为C++标识符使用的是()。
软件的调试方法主要有强行排错法、【】和原因排错法。
随机试题
下列关于Cl-在近端小管重吸收的描述,正确的是
下列物质中,属于潜在致癌物的是()。
修改或删除会计科目必须先从末级科目开始。()
泡沫塑料制服装垫肩
某旅游开发有限公司2010年8月发生有关业务及收入如下:(1)旅游景点门票收入650万元;(2)景区索道客运收入380万元;(3)民俗文化村项目表演收入120万元;(4)与甲企业签订合作经营协议:以景区内价值2000万元的房
建设单位与物业买受人签订买卖合同应当包含()。
古代兄弟间排行老三的是()。
一只青蛙在直角坐标系的平面里从点(2,2)处开始起跳,每次只能向上、下、左或右跳一个单位,则该青蛙要想到达点(-2,-1)处需要跳动的次数可能是
如果要组建—个快速以太网,那么需要使用以下哪些基本的硬件设备与材料________。Ⅰ.100BASE-T交换机Ⅱ.100BASE-T网卡 Ⅲ.双绞线或光缆Ⅳ.路由器
A、Theyareleadinginthegame.B、Thescoreisreallyclose.C、TheDreamTeamiswaybehind.D、Theywinthegame.A信息明示题。文章第一段指出
最新回复
(
0
)