首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
34
问题
有如下程序:
#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>usingnamespacestd;classA{inta,b;public:A(){
类是一个支持集成的抽象数据类型,而对象是类的【】。
有以下程序#include<iostream>usingnamespacestd;inta;intfun();intmain(){externinta;intb;
下列打开文件的表达式中,错误的是
下列运算符中不能在C++中重载的是
类是一个支持集成的抽象数据类型,而对象是类的【】。
在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承private。已知有如下类定义:classBase{protected:voidfun(){}};classDerived:
在结构化分析使用的数据流图(DFD)中,利用【】对其中的图形元素进行确切解释。
有如下复数类的声明,请补充完整。classcomplex{doublereal;//实部doubleimag;//虚部public:complex(doublex,doubley){
将E—R图转换为关系模式时,实体和联系都可以表示为
随机试题
矛盾同一性在事物发展中的作用表现为()
关于催产素的叙述,哪一项是错误的
能表示药材品质的药名是
有关国务院的职权,下列哪一项的说法不正确:()。
全部使用国有资金投资或者以国有资金为主的建筑工程,应当采用()计价。
证券公司营业部必须在营业场所发布股份转让的价格信息,转让日当天的价格信息发布内容有( )。
下列关于消费税计税价格的说法中,错误的是()。
甲公司2019年财务报表经董事会批准将于2020年4月30日对外报出,假定其2020年发生下列事项具有重要性,甲公司不应当调整2019年财务报表的有()。
根据以下资料。回答问题。2014年上半年,上海市建筑企业直接同建设单位签订合同额11310.77亿元,其中本年新签合同额3934.43亿元,比去年同期增长25.6%。全市特级和一级资质建筑企业本年新签合同额1849.7亿元和1495.42亿元,分别增长3
马克思曾把人的发展历史进程区分为三个阶段,并认为它们同时也是人类社会发展的三大形态。这三个阶段有()
最新回复
(
0
)