首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
admin
2020-07-23
55
问题
有如下程序:
#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=newD以及类D的对象d;执行fun1会调用派生类的show函数,因为show函数为虚函数,而调用fun2、fun3仍然为基类的show函数,所以本题答案为C。
转载请注明原文地址:https://kaotiyun.com/show/j2yp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若实体A和B是一对一的联系,实体B和C是多对一的联系,则实体A和C的联系是
有如下程序:#includeusingnamespacestd;classMyClass{public:MyClass(){++count;}~MyClass(){--count;}staticintgetCount
有如下类声明和函数声明:classBase{intm;public:intn;protected:intp;};classDe
有如下类定义:classPoint{public:voidSetX(intxx){x=xx;}protected:voidSetY(intyy)
有如下类声明:classBase1{};classBase2{};classDerived:publicBase2,publicBase1{};在一个Derived对象消亡时,析构函数被调用的顺序
若为类MyClass重载运算符"+",下列声明中,错误的是
下列关于模板的表述中,错误的是
已知有数组定义chara[3][4];下列表达式中错误的是
在软件开发中,需求分析阶段产生的主要文档是( )。
一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。
随机试题
A.单纯扩散B.易化扩散C.继发性主动转D.原发性主动转运K+由细胞内向细胞外转运,属于
A.咳嗽,咳痰稀白B.咳嗽,痰多泡沫C.咳喘,咳痰黄稠D.咳嗽,痰少难咳E.咳喘,痰多易咳燥邪犯肺证,可见()
治疗气虚感冒,应首选
【2013专业知识真题上午卷】在考虑供电系统短路电流问题时,下列表述中哪一项是正确的?()
在建设项目实施阶段的策划工作中,项目实施的组织策划的主要工作内容不包括()。
个人住房贷款贷后检查的内容包括()。
下列有关平衡计分卡与企业战略管理的说法中,不正确的是()。
到中世纪时期,大多数地区的文明已根深蒂固,难以_______。唯独在西方,曾盛行一时的古典文明被连根拔起,为新文明的形成彻底扫清了道路,沿着崭新的道路自由发展。正是西方的这一独特性,使西方能发展经济力量,推动技术进步,产生向海外扩张、_______世界诸海
从钟表的12点整开始,时针与分针的第一次垂直与再一次重叠中间相隔的时间是()。
Bequietand______yourwork.
最新回复
(
0
)