首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
admin
2021-05-06
21
问题
有如下程序:
#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/PFfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下类声明:classSAMPLE{intn;public:SAMPLE(inti=0):n(i){}voidsetValue(intn0);};下列关于getValue成员函数的定义中,正确的是()。
有如下程序:#includeusingnamespacestd;classTest{public:Test(){n+=2;)~Test(){n一3;)static
使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:numbor1=anumher2=anumbcr1=anumber2_b注意:错误的语句
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数sum(intn)计算在n范围内,能被7和11整除的所有整数的和(包括n在内)。注意:不能修改程序的其他部分,只能补充sum()函数。1
使用VC6打开考生文件夹下的源程序文件modi2.epp。阅读下列函数说明和代码,补充空出的代码。函数IsPalindromes(cha*string)实现的功能是判定给定的字符串是否构成回文字符串,如果是则返回1,否则返回0。如:1234554
下列关于this指针的叙述中,正确的是()。
对于一个类定义,下列叙述中错误的是()。
若有函数模板mySwap和一些变量定义如下:()。template<classT>voidmySwap(Tx,Ty);doubled1,d2;inti1,i2;下列对mySwap的调用中,错误的是
建立一个类对象时,系统自动调用()。
在数据库中,产生数据不一致的根本原因是
随机试题
易燃气体有氢气、乙炔气、一氧化碳、液化石油气等,其按火灾危险性分为()级。
联言推理合成式的推理形式是:()
全身麻醉未清醒的病人采用去枕仰卧位的目的是
直径为d的实心圆轴受扭,在扭矩不变的情况下,为使扭转最大切应力减小一半,圆轴的直径应改为:
社会评价中,调查与收集社会信息必须遵循一定的基本程序,一般都要经历确定调查对象、调查方法设计、调查实施和()等阶段。
下列代理行为中,不属于无权代理行为的是()。
根据经济学、金融学、投资学的基本原理推导出结论的分析方法称为( )。
根据以上两表,可知下列说法错误的是()。各月份中,平均每起火灾导致的损失和死亡人数最多的月份分别为()。
下列组合正确的一组是:
设某数据库管理员设计了如下图所示的数据库服务器容错架构,此架构一般被称为()。
最新回复
(
0
)