首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
admin
2015-07-22
40
问题
有如下程序:
#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/YANp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下面程序的输出结果为()。#include<iostream.h>classCStatic{public:CStatic(){val++;}stati
关于在调用模板函数时实参的使用,下列表述中正确的是
下面对对象概念描述错误的是
下列叙述中正确的是
已知:intn=10;那么下列语句中错误的是
下列程序将x、y和z按从小到大的顺序排列,请将下面的函数模板补充完整。template<classT>voidorder(【】){Ta;if(>y){a=X;x=y
在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是
有如下复数类的声明,请补充完整。classcomplex{doublereal;//实部doubleimag;//虚部public:complex(doublex,doubley){
在关系数据库中,用来表示实体之间联系的是【 】。
若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需“要使用的存储类别是()。
随机试题
A.促甲状腺激素B.糖皮质激素.C.抗利尿激素D.甲状腺激素E.促肾上腺皮质激素释放激素由甲状腺产生的激素是()。
呼吸衰竭病人必定有动脉血PaCO2的升高。
银汞合金的调和时间越长则
"痴呆"的辨证论治范围不包括
多发性骨髓瘤
路基冬期施工是指( )。
业务(3)中所发生的进项税额为( )。当月该公司应纳的增值税税额为( )。
某种运输服务价格的变动引起的另一种运输服务供给变动的灵敏程度是指()。
A公司于2010年1月10日与B公司签订一份标的额为100万元的买卖合同,合同约定采用商业汇票结算方式。2月1日,A公司按照合同约定发出货物,B公司于2月10日签发一张见票后1个月付款的银行承兑汇票。3月5日A公司向C银行提示承兑并于当日获得承兑。3月10
在《中华人民共和国义务教育法》中,国家鼓励高等学校毕业生到农村地区、民族地区缺乏教师的学校任教,其身份是()。
最新回复
(
0
)