首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
有如下的类声明: #include using namespace std; class AA{ public: virtual void disp(){ cout
admin
2015-07-22
24
问题
有如下的类声明:
#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/zfNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
以下程序运行后的输出结果是【】#include<iostream>#include<string>usingnamespacestd;classY;classX
若下面程序运行时输出结果为1,A,10.12,B,3.5#include<iostream>usingnamespacestd;intmain(){voidtest(int,cha
若有定义语句:int a=3,b=2,c=1;,则表达式a<b?a:b的值是【 】。
算法的有穷性是指
按照软件测试的一般步骤,集成测试应在______测试之后进行。
软件结构是以【】为基础而组成的一种控制层次结构。
下列运算符中,()运算符在C++中不能重载。
下列函数原型声明中错误的是______。
如果表达式++x/y中,++是作为友元函数重载的,/是作为成员函数重载的,则该表达式还可为
一棵含18个节点的二叉树的高度至少为()。
随机试题
以下规定中,主要是在保护妇女的财产权利的是()。
能够益气复脉,养阴生津的药物是()。
患者,男,1岁,发热10小时,体温39.5℃,来医院就诊时,突然出现双手紧握,两眼凝视,呼之不应,持续3分钟;查体:神志清楚,精神萎靡,颈软无抵抗。该患儿首先应考虑是()。
城市的总体规划由()负责组织编制。
QDII基金申购、赎回中,基金管理公司会在T+1日内对该申请的有效性进行确认。T日提交的有效申请,投资者应在T+2日到销售网点柜台或以销售机构规定的其他方式查询申请的确认情况。()
股票分割由于不能给投资者带来现实的利益,所以通常会刺激股价下滑。( )
甲公司2007年年初未分配利润为400万元,盈余公积为300万元。本年实现净利润为1000万元。本年提取法定盈余公积金100万元,提取任意盈余公积100万元,分配现金股利300万元。因扩大经营规模的需要,经批准,甲公司决定将资本公积150万元和盈余公积15
5,11,24,52,()
条件反射的发现者是()。
记忆的全过程包括()
最新回复
(
0
)