首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #include using namespace std; class B{ public: virtual void show(){cout
有如下程序; #include using namespace std; class B{ public: virtual void show(){cout
admin
2020-04-07
67
问题
有如下程序;
#include
using namespace std;
class B{
public:
virtual void show(){cout<<"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://kaotiyun.com/show/Ok8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
______是C++语言程序的入口。
在进行了任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中()函数名只能用于检测输入操作。
设有下列二叉树:对此二叉树前序遍历的结果为
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。
在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。
两个或两个以上模块之间联系的紧密程度称为()。
下列选项中不属于软件生命周期开发阶段任务的是()。
数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及
在结构化方法中,软件功能分解属于下列软件开发中的阶段是
下列函数的功能是判断字符串str是否对称,对称则返回true,否则返回false。请在画线处填上适当内容,实现该函数。boolfun(char*str)}inti:0,j=0;while(str[j])(6);
随机试题
膜性肾病的肾小球基本病变特征是
较理想的输卵管通畅度的检查方法为
痫病较少发生于
男,5个月,反复发作呼吸困难,伴吸气时喉鸣,唇紫3~4次,间歇期一般好,无青紫,左枕部颅骨软化,心肺正常。
炎症介质组胺在炎症灶内最主要的作用是
A.祛风湿,利小便B.祛风湿,降血压C.祛风湿,安神志D.祛风湿,消痰水E.祛风湿,安心神威灵仙的功效是()。
砌筑砖墙时,上下皮须错缝搭接,搭接长度不应小于:()
建设工程监理工作应有明确的依据,除《建设工程质量管理条例》中提及的监理依据外,还包括()
深圳证券交易所上市公司现金红利的派发规则与上海证券交易所完全一样。()
ThetransportationofconvictstoAustraliawasphasedoutbetween1840and1868,thecontinentofAustraliahadbeendividedin
最新回复
(
0
)