首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
admin
2020-05-14
25
问题
有如下程序:
#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);
delete p;
return 0;
}
执行这个程序的输出结果是( )。
选项
A、BBB
B、BBD
C、DBB
D、DBD
答案
C
解析
在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数,本题中定义类B的对象 b、对象指针*p=new D以及类D的对象d;执行fun1会调用派生类的show函数,因为show函数为虚函数,而调用fun2、fun3仍然为基类的show函数,所以本题答案为C。
转载请注明原文地址:https://kaotiyun.com/show/IS8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
对虚函数的调用()。
在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承private。已知有如下类定义:classBase{protected:voidfun(){}};classDerived:Base{};则Base类中的成员函
结构化程序设计方法的主要技术是【】、逐步求精。
两个或两个以上模块之间关联的紧密程度称为
下列有关指针的用法中,错误的是()。
语句cout<<’\n’还可表示为【】。
关系数据库管理系统能实现的专门关系运算包括()
以下选项中合法的实型常数是()。
一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。
随机试题
我国规定婴幼儿奶粉中黄曲霉毒素M1()。
在考生文件夹下打开文档“Word.docx”,按照要求完成下列操作并以该文件名“Word.docx”保存文档。在文档的开始位置插入只显示2级和3级标题的目录,并用分节方式令其独占一页。
声束通过一介质后,其振幅和声强的降低称为
建筑电气方案设计文件中,火灾自动报警系统应有火灾自动报警平面图等。()
测绘成果的特征包括()。
下列结构设施中既可以用于坡面冲刷防护,又可用于路基边坡支撑,还可用于堤岸支挡的是()。
报表汇总时,进行汇总的各个报表格式应当()。
国际注册投资分析师协会正式成立时间及注册地分别为()。
逐步结转分步法的主要缺点是()。
设f(x)在区间[0,1]上可微,且满足条件试证:存在ξ∈(0,1),使f(ξ)+ξf’(ξ)=0.
最新回复
(
0
)