首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class B{ public: virtual void show(){cout
有如下程序: #include using namespace std; class B{ public: virtual void show(){cout
admin
2020-07-30
14
问题
有如下程序:
#include
using namespace std;
class B{
public:
virtual void show(){cout<<“B”;}
);
class D:public B{
public:
void show(){tout<<“D”;)
);
void fun 1(B*ptr){ptr->show();)
void fun2(B&ref){ref.showO;}
void fun3(B b){b.show();)
int main(){
B b,*p=new D;
D d;
funl(p);
fun2(b);
fun3(d);
return O:
}
程序的输出结果是( )。
选项
A、BBB
B、BBD
C、DBB
D、DBD
答案
C
解析
此题考查的是虚函数与多态性。在成员函数的声明前面加上virual关键字,即可把函数声明为虚函数;在c++中,一个基类指针可以用于指向它的派生类对象,而且通过这样的指针调用虚函数时,被调用的是该指针实际所指向的对象类的那个重定义版本。此题中,funl()和fun2()的形参分别是基类的指针和引用,给funl()传入的实参是指向派生类对象的指针p,funl()将调用D类中的show()输出字符‘D’;给fun2()出入的实参是基类对象,fun2()调用类B中的show()输出字符‘B’;fun3()由于形参是基类对象,调用的始终都是基类的show(),输出字符‘B’。故最终输出结果是DBB。
转载请注明原文地址:https://kaotiyun.com/show/aDyp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是30,50,-88,0和0,则下列定义语句中错误的是()。
若有如下类声明classMyClass{public:MyClass(){cout<<1;}};执行下列语句MyClassa,b[2],*p1[]2:以后,程序的输出结果是()。
数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。
在C++语言中函数返回值的类型是由()决定的。
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,该工程中含有一个源程序文件proj1.cpp。其中位于每个注释“//ERROR****found****”之后的一行语句有错误。请改正这些错误,使程序的输出结果为:12345
下列关于基类和派生类关系的叙述中,正确的是()。
设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为()。
下列符号中不属于C++关键字的是()。
下列叙述中正确的是()。
下列有关类继承的叙述中,错误的是()。
随机试题
纤维局灶性肺结核的特点是
小陷胸汤的组成是
A.等渗性脱水B.低渗性脱水C.高渗性脱水D.低钙血症E.高钾血症可引起脑毛细血管破裂出血的脱水为()
下列关于民事权利的说法正确的是()。
领导的职能归纳起来需要处理三个方面的关系,不包括()。
《生产安全事故应急预案管理办法》规定,应急预案演练结束后,应急预案演练组织单位应当对应急预案演练效果进行评估,撰写应急预案演练评估报告,分析存在的问题,并对应急预案提出()建议。
综合课程也被称作“广域课程”,其特点是:打破传统的学科课程的知识领域,组合相邻领域的学科构成一门学科。()
关于二义性的描述错误的是
Theyoungmanwas______.Theyoungman______beforehewenttoseeMr.White.
NomatterhowlargeornotabletheU.S.travelindustryisormaybecome,itwillalwaysbemembersofabroaderworldsociety.
最新回复
(
0
)