首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
53
问题
有如下程序:
#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://www.kaotiyun.com/show/j2yp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
Windows环境下,由C++源程序文件编译而成的目标文件的扩展名是
有如下类声明:classWhat{intn;public:doubled;private:charc;};类What的公有数据成员和私有数
有如下类声明和函数声明:classBase{intm;public:intn;protected:intp;};classDe
若要在Viz类中将*重载为一元运算符,下列重载函数声明中肯定有错的是
有如下程序:#includeusingnamespacestd;voidfun(int&x,int&y){y=y+x;x=y/4;
下列有关类成员的叙述中,错误的是
常量4.2,4.2f,4L的数据类型分别是
有三个关系R、S和T如下:则由关系R和S得到关系T的操作是
若实体A和B是一对一的联系,实体B和C是多对一的联系,则实体A和C的联系是
下列字符串中,不可以用做C++标识符的是()。
随机试题
不合味蕾的结构是
网关业务规则根据其使用的证书以及在网上交易是否遵循SET标准分为________业务规则和________业务规则。
A.烦躁昏迷、惊厥或面色苍白、四肢厥冷B.精神萎靡、饮食少思、大便稀薄C.身见瘀点、瘀斑D.发热持续、皮肤灼热、小便频数而清长E.腹痛腹泻、恶心呕吐
施工方案包括的主要内容有( )。
我国第一首三部合唱曲是________,其作者是________。
小丽比妈妈矮Acm,爸爸比小丽高Bcm(A>B)。小丽妈妈和爸爸的身高关系是()
下列不属于《消费者权益保护法中》中规定的消费者具有的权利的是()。
在数字音频信息数字化过程中,正确的处理顺序是()。
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun,该函数的功能是:将s所指字符串中ASCII码值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。例如
EuphemismI.OverallIntroductionofEuphemismA.Thewordofeuphemism(fromGreek)—Prefix"eu-":good,well—Root"-phem":
最新回复
(
0
)