首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #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
45
问题
有如下程序;
#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全国计算机二级
相关试题推荐
下列打开文件的表达式中,错误的是()。
已知intDBL(intn){returnn+n;}和longDBL(longn){returnn+n)是一个函数模板的两个实例,则该函数模板的定义是【】。
一个模块直接调用的其他模块的个数称为______。
下面程序要实现的功能是打开当前目录下的文件abc,并向其追加一串字符“Howareyou!”,然后再关闭该文件,请将程序填写完整。#include<fstream.h>voidmain(){【】
Staff类含有int型数据成员ID,两个Staff对象相等是指它们的ID相同。下面的函数重载了运算符==,它用来判断两个Staff对象是否相等,相等时返回true,否则返回false。请将横线处缺失部分补充完整。boolStaff::Staf
在下面的类定义中,错误的语句是()。classSample{public:Sample(intval);//①~Sample();//②pr
设变量a是int型,f是double型,i是float型,则表达式10+’a’+i*f值的数据类型
下列叙述中正确的是
设一棵完全二叉树共有839个结点,则在该二叉树中有【 】个叶子结点。
随机试题
口腔扁平苔藓的主要病理变化是
患者,女,54岁,已婚,白带多伴外阴痒2周。查外阴皮肤有抓痕,检查见阴道后穹隆处有大量稀薄淡黄色分泌物、有脓臭味,阴道黏膜有多处多个散在红色斑点。以下护理措施,哪项不正确
工程项目绩效报告的主要输出包括()
当出现危险情况时,能瞬时动作,终止设备的一切运动,并与制动器或离合器联锁,以保证迅速终止运行的开关是()。
申请注册从事供港澳活羊中转仓应符合下列条件:( )
新月公司与楚翔公司约定,由新月公司向楚翔公司交付100吨水泥,楚翔公司付款20万元。之后,楚翔公司将水泥转卖给和平公司,并约定由新月公司向和平公司交付,和平公司收货后3日内应向楚翔公司支付价款25万元。余某以自有汽车为楚翔公司的债权提供抵押担保,但未办理抵
QFA集团是一家以经营传统特色包子为主的餐饮连锁企业。截止2012年,该集团旗下连锁店已经发展到170家,年销售包子2亿个,年均消费3000万人次。为了解决连锁店包子品味不一致问题,QFA集团投资500万元建成馅料加工配送中心。配送中心统一加工制
ThestaggeringvarietyoffreestuffavailableontheInternetsometimesseemstohaverepealedthefirstlawofeconomics:Ther
Therewas_____onthemenuyesterday.
A、Rentagrave.B、Burnthebody.C、Burythedeadnearachurch.D、Buyapieceoflandforagrave.D
最新回复
(
0
)