首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #inc1ude<iostream> using namespace std; class B{ public: virtual void show() {cout
有如下程序; #inc1ude<iostream> using namespace std; class B{ public: virtual void show() {cout
admin
2016-11-23
25
问题
有如下程序;
#inc1ude<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.show();}
void fun3(B b) {b.show(); }
int main() {
B b,*p=new D;
D d;
funl(p);
fun2(b);
fun3(d);
return 0;
}
程序的输出结果是( )。
选项
A、BBB
B、BBD
C、DBB
D、DBD
答案
C
解析
此题考查的是虚函数与多态性。在成员函数的声明前面加上virual关键字,即可把函数声明为虚函数;在C++中,一个基类指针可以用于指向它的派生类对象,而且通过这样的指针调用虚函数时,被调用的是该指针实际所指向的对象类的那个重定义版本。此题中,funl()和fun20的形参分别是基类的指针和引用,给funl()传入的实参是指向派生类对象的指针p,funl()将调用D类中的show0输出字符‘D’;给fun2()出入的实参是基类对象,fun2()调用类B中的show0输出字符‘B’;fun3()由于形参是基类对象,调用的始终都是基类的show0,输出字符‘B’。故最终输出结果是DBB。
转载请注明原文地址:https://kaotiyun.com/show/OzAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若要打开二进制文件binfile写方式,输出到文件尾则应为:ofstreambfile("binfile",______);
【】是C++语言程序的入口。
对于常成员函数,下面描述正确的是()。
在析构函数中调用虚函数时,采用______联编。
关于二义性的描述错误的是
非空的循环单链表head的尾结点(由p所指向),满足
在下面四个选项中,()是用来声明虚函数的。
如果一个模板声明列出多个参数,则多个参数之间必须使用______隔开,每个参数都必须重复使用关键字______。
关于this指针的说明不正确的是
在不同文件的函数中,对非静态全局变量的引用要加的关键字是()。
随机试题
教学大纲中课程的性质、任务、要求、重点、难点、教学方法指导等内容是属于教学大纲的()部分。
Couldyougivemeahintwithout______theanswer?
A、胆汁溶菌试验B、0/129抑菌试验C、杆菌肽试验D、氧化酶试验E、酯酶试验用于弧菌科属间鉴别的是
经过锁骨中点并与身体正中线平行的直线为
作为单身母亲的余女士已离婚成为单身母亲,面对生涯规划,需要金融理财师协助规划。经过初步沟通面谈后,你获得了以下家庭、职业与财务信息:一、案例成员二、家庭收支状况1.收入方面(1)余菲菲女士,每年经营收入扣除铺租、水电、管理费、人工、税金等各项成本
职业道德的特征包括()。
在CDMA蜂窝移动通信系统中,所有用户使用相同的频带并可能同时发送信息。如果各移动台发射功率相同,由于传输路程不同,在上行链路,信号到达基站时,基站接收到靠近基站用户发送的信号比在小区边缘用户发送的信号强度大,因此远端的用户信号被近端的用户信号淹没,这就是
(中山大学2013)某企业原流动比率大于1,速动比率小于1,现以银行存款支付以前的应付账款,则企业的()。
Inatelephonesurveyofmorethan2000adults,21%saidtheybelievedthesunrevolved(旋转)aroundtheearth.An【C1】______7%did
A、Hewantstoimprovehislanguageskills.B、HewantstoenteraUScollege.C、HisfriendwantstoattendaUSuniversity.D、His
最新回复
(
0
)