首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #include using namespace std; class B{ public: virtual void show(){cout
有如下程序; #include using namespace std; class B{ public: virtual void show(){cout
admin
2015-09-14
23
问题
有如下程序;
#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/kqNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列程序的输出结果是#include<iostream.h>intb=2;intfunc(int*a){b+=*a;return(b);}voidmain()
有以下程序#include<iostream.h>floatfun(intx,inty){return(x+y);}voidmain(){inta=2,b=5,c=
要想使23.78965421的输出为23.7887应用的语句是
分布式数据库系统不具有的特点是
若有说明:int[3][4]={0};则下面叙述正确的()。
以下程序的输出结果是#include<iostream.h>longfun(intn){longs;if(n=1||n=2)s=2:elses=n-fun(n-1);returns;}
类模板的模板参数()。
两个变量定义不能同名,是因为()。
在软件生产过程中,需求信息的给出是
下列关于多态性的描述,错误的是
随机试题
不属于《广陵散》中的人物形象的是【】
领导生命周期理论的领导方式包括()
管井井点降水适用的情况有()。
园林中所有装饰图案无一雷同,且大都以岭南佳果为题材,富有岭南特色。该园林是()。
北京时间2011年10月23日18时41分,土耳其发生7.3级地震(震中见下图),造成巨大的人员伤亡和财产损失。读图回答问题。地震发生日,当地()。
短时记忆的信息容量是()。
你和同学一同考入新单位,同学受到领导信任,你勤奋,成绩突出,但领导对你印象不佳,总是为难你,你怎么做?
教育界尝试的综合课程加强学科之间以及学科知识与现实生活之间的联系,典型的综合课程按照课程综合程度,由高到低排列为()。
Everysecond,【56】hectareoftheworld’srainforestisdestroyed.That’sonetotwofootballfields.This【57】rateofdestruct
Acollegelibraryisaninexhaustibleandeverchangingstorehouseofinformation.Newbooks,periodicals,andother【67】ofinfor
最新回复
(
0
)