首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #inc1ude<iostream> using namespace std; c1ass B{ public: virtualvoidshow(){cout<<"B";} }; c1a
有如下程序; #inc1ude<iostream> using namespace std; c1ass B{ public: virtualvoidshow(){cout<<"B";} }; c1a
admin
2017-06-18
56
问题
有如下程序;
#inc1ude<iostream>
using namespace std;
c1ass B{
public:
virtualvoidshow(){cout<<"B";}
};
c1ass D:public B{
public:
void show(){count<<"D";}
};
void funl(B *ptr){ptr—>show();)
void fun2(B &ref){rer.show();}
void fun3(B b){b.show();}
int main(){
B b,*p=new D;
D d;
fun1(p);
fun2(b);
fun3(d);
retum 0;
}
程序的输出结果是( )。
选项
A、BBB
B、BBD
C、DBB
D、DBD
答案
C
解析
此题考查的是虚函数与多态性。在成员函数的声明前面加上virual关键字,即可把函数声明为虚函数:在C++中,一个基类指针可以用于指向它的派生类对象,而且通过这样的指针调用虚函数时,被调用的是该指针实际所指向的对象类的那个重定义版本。此题中,fun10和fun2()的形参分别是基类的指针和引用,给fun1()传入的实参是指向派生类对象的指针p,fun1()将调用D类中的showO输出字符’D’;给fun2()出入的实参是基类对象,fun2()调用类B中的show0输出字符’B’:fum3()由于形参是基类对象,调用的始终都是基类的show0,输出字符’B’。故最终输出结果是DBB。
转载请注明原文地址:https://kaotiyun.com/show/phAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下面程序输出的结果是( )。 #include<iostream> using namespace std; class A{ int X; public: A(int x):x(++x){}
由两个栈共享一个向量空间的好处是( )。
已知intDBL(intn){returnn+n;}和longDBL(longn){returnn+n}是一个函数模板的两个实例,则该函数模板的定义是______。
有以下程序:#include<iostream>usingnamespacestd;longfib(intn){if(n>2)return(fib(n-1)+
数据之间的相互关系和数据运算是指( )。
算法的时间复杂度是指
下列关于线性表叙述中,不正确的是()。
考虑一年四季的顺序关系时,下列数据元素前者不是后者前件的是()。
排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、______和选择排序。
随机试题
马克思曾指出:在欧洲,预兆资产阶级社会到来的伟大发明是()
肝硬化大出血诱发肝性脑病的主要机制是
女性,36岁,1d前出现发热、腹泻,为黏液脓性鲜血便,有里急后重感,该患者可能是
传染病病人能排出病原体的整个时间称为()
蒙医的基础理论内容包括( )。
24h尿液标本中加入浓盐酸的目的是
工程质量统计分析方法中,因果分析图的主要作用是()。
下列关于国际收支差额分析的说法,错误的是()。
若“所有灵长类动物大脑可能都具有额叶皮质”为真,则以下哪项一定为真?
为了维持秩序,有关部门偷拍违法行为,但同时侵犯了隐私权,谈谈你的看法。
最新回复
(
0
)