首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #include using namespace std; class B{ public: virtual void show(){tout
有如下程序; #include using namespace std; class B{ public: virtual void show(){tout
admin
2019-02-22
26
问题
有如下程序;
#include
using namespace std;
class B{
public:
virtual void show(){tout<<"B";}
};
class D:public B{
public:
void show(){cout<<"D";}
};
void fun1(B*ptr){ptr->show();)
void fun2(B&ref){ref.show();}
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,fun1()将调用D类中的show()输出字符‘D’;给fun2()出入的实参是基类对象,fun2()调用类B中的show()输出字符‘B’;fun3()由于形参是基类对象,调用的始终都是基类的show(),输出字符‘B’。故最终输出结果是DBB。
转载请注明原文地址:https://jikaoti.com/ti/LQt0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列程序的运行结果是______。#include<iostream.h>classSomeClass{public:SomeClass(intvalue){somevalue=value;);
下列关于C++语言类的描述中错误的是
软件开发环境是全面支持软件开发全过程的______集合。
下面程序的输出结果是main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){def
在派生类中,对类对象成员,基类成员和非类对象成员的初始化程序是______。
下列程序的运行结果为#include<iostream.h>inti=0;classA{public:A(){i++;}};voidmain(){Aa,b
下面关于虚函数的描述,错误的是
数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是______。
在下列关键字中,不能用来表示继承方式的是
随机试题
患儿,18个月,自8个月起多次患肺炎、中耳炎和脓疱病,查体发现该患儿扁桃体缺如,该患儿最有可能出现异常的检查是
肺痈成痈期的主证,以下哪项是错误的
急性肾衰竭的诊断依据是
小儿舌体肿大,板硬麻木,舌色深红,其病机是
“海拔”是地面点到()的铅垂距离。
植物生长营养液()
故宫始建于()年间。
下面谱例出自格里格的钢琴小品《蝴蝶》,描绘了蝴蝶轻盈欢快地在花丛中穿梭起舞的情景。下列哪个速度标记适用于此乐曲?()
马克思主义政治经济学的根本任务是
Federaleffortstoaidminoritybusinessesbeganinthe1960’swhentheSmallBusinessAdministration(SBA)beganmakingfederal
最新回复
(
0
)