首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #include<iostream> using namespace std; class B{ public: virtual void show(){cout<<’’B’’;} };
有如下程序; #include<iostream> using namespace std; class B{ public: virtual void show(){cout<<’’B’’;} };
admin
2017-04-25
35
问题
有如下程序;
#include<iostream>
using namespace std;
class B{
public:
virtual void show(){cout<<’’B’’;}
};
class D:public B{
public:
void show(){cout<<’’D’’;}
};
void funl(B*ptr){ptr->show();}
void fun2(B&ref){ref.show0;}
void fun3(B b){b.show();}
int main(){
B b,*p=new D;
D d;
fun1(p);
fun2(b);
fun3(d);
return 0;
}
程序的输出结果是( )。
选项
A、BBB
B、BBD
C、DBB
D、DBD
答案
C
解析
此题考查的是虚函数与多态性。在成员函数的声明前面加上virual关键字,即可把函数声明为虚函数:在C++中,一个基类指针可以用于指向它的派生类对象,而且通过这样的指针调用虚函数时,被调用的是该指针实际所指向的对象类的那个重定义版本。此题中,fun1()和fun2()的形参分别是基类的指针和引用,给fun1()传入的实参是指向派生类对象的指针p,funl()将调用D类中的show()输出字符‘D’;给fun2()出入的实参是基类对象,fun2()调用类B中的show()输出字符‘B’;fun3()由于形参是基类对象,调用的始终都是基类的show(),输出字符‘B’。故最终输出结果是DBB。
转载请注明原文地址:https://kaotiyun.com/show/d2Ap777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下面是类Shape的定义:classShape{public:virtualvoidDraw()=0;}下列关于Shape类的描述中,正确的是()。
有如下程序:#inCludeusingnameSpacestd;ClassA{public:A(inti=0):r1(i){}voidplint(){cout
若x和y是程序中的两个整型变量,则下列if语句中正确的是()。
非成员函数应声明为类的______函数才能访问这个类的private成员。
已知在函数func()中语句this->ff=0;与语句ff=0;的效果完全相同。对于这一现象,下列表述中错误的是
在软件开发中,下面任务不属于设计阶段的是
重载的关系运算符和逻辑运算符的返回类型应当是_______。
在面向对象方法中,类的实例称为______。
执行语句序列intx=10,&r=x;cout<<x<<’-’<<r<<endl;输出结果为______。
随机试题
在Access2010中通过设置默认值可以防止输入无效数据。
按照腰椎间盘突出症在各椎间隙发生的概率多少,下列排列哪项是恰当的
新生儿缺氧缺血性脑病的主要原因是
关于监理人未正确履行合同义务情形的说法,正确的有()。
背景某机电安装工程项目,在防腐管道施工过程中,根据施工工艺安排,在管道焊接时,项目经理部根据施工现场的实际情况,本着尽可能选择优质低耗、劳动强度低的焊接方法,决定采用电弧焊。然而,在焊接施工过程中,不慎将未焊接的管道掉落,造成了部分施工机械损坏,
背景某施工项目进展到第15周后,对前14周的工作进行统计检查,有关情况如下表所示:注:工作M、N原没有计划,统计时已经进行了施工;工作I、J虽有计划,但是并没有施工。问题简述挣值法中三参数(费用值)的代号及含义。
在征收房产税时,下列做法正确的有()。
旅行社的营业设施应当至少包括()。
物质资料的生产方式是社会存在和发展的物质基础,它体现的关系是()。
计算机能够直接识别和处理的语言是()。
最新回复
(
0
)