首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
33
问题
有如下程序:
#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://www.kaotiyun.com/show/YANp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
以下程序的输出结果是()。#include<iostream.h>voidfunc(char**m){++m:cout<<*m<<endl;}
一个函数为void(int,char=’a’),另一个函数为voidf(int),则它们()。
有以下程序#include<iostream>usingnamespacestd;classBase{private:charc;public:Base(charn):c(n
下列叙述中错误的是
下面程序的输出结果为:Base::fun,请将程序补充完整。#include<iostream.h>classBase{public:【】fun(){cout<<"Base::fun"<<end1;}}
下列关于队列的叙述中正确的是
下列程序将x、y和z按从小到大的顺序排列,请将下面的函数模板补充完整。template<classT>voidorder(【】){Ta;if(>y){a=X;x=y
假设fin是一个文件流对象,则关闭文件的语句是【】。
随机试题
________为胃肠道破裂的证据,立位腹部平片可表现为________阴影。
出口日期应填______。指运港栏应填______。
下列属于业务类工作底稿的有()。
劳动保障监察是法律赋予()的一项重要职责。
微型计算机中使用的数据库属于()。
下列属于《“十三五”旅游业发展规划》的主要任务的有()和提高人民群众满意度。
《义务教育语文课程标准(2011年版)》“评价建议”部分指出,要坚持___________和定量评价相结合,全面反映学生语文学习的状态及水平。
一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为
A、喜欢吃肉B、喜欢游泳C、晚上休息D、白天休息C根据文中“白天休息,到了晚上才出来活动”,可知选C。
Areyousuperstitious?Doyoubelieveingoodluckandbadluck?And,ifso,howdoyougoaboutavoidingbadand【S1】______goo
最新回复
(
0
)