首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include <iostream> using namespace std; class B { public: virtual void show() { cout<<"B"; } };
有如下程序: #include <iostream> using namespace std; class B { public: virtual void show() { cout<<"B"; } };
admin
2009-06-20
76
问题
有如下程序: #include <iostream> 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); return 0; }程序的输出结果是
选项
A、BBB
B、BBD
C、DBB
D、DBD
答案
C
解析
本题考查的知识点是:虚函数与多态性。在成员函数声明的前面加上virtual修饰,即把该函数声明为虚函数。在C++中,一个基类指针(或引用)可以用于指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。题目中,fun1()和fun2()的形参分别是基类的指针和引用,如果传入的实参是指向派生类对象的指针或派生类对象,则函数中调用的show()为派生类中的show(),否则为基类中的show()。给fun1()传入的实参是指向派生类对象的指针p,而给fun2()传入的实参是基类对象。所以 fun1()调用派生类D中的show()输出一个’D’字符,fun2()调用基类B中的show()输出一个’B’字符。fun3()由于形参为基类对象,所以无论传入的是基类对象还是派生类对象,函数中调用的show()始终为基类的版本,输出一个’B’字符。故最终输出结果为 DBB,应该选择C。
转载请注明原文地址:https://kaotiyun.com/show/7ojp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
以下叙述错误的是()。
下列程序的运行结果是()。#includevoidmain()voidfun(int*s,int*p){inta[]={2,3,4,5},k,x;{staticintt=3;for
在软件开发中,需求分析阶段产生的主要文档是()。
待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第()个位置。
有如下程序段:intx=12;doubley=3.141593;printf("%d%8.6f",x,y);其输出结果是()。
以下关于C语言数据类型使用的叙述中错误的是()。
一名教师可讲授多门课程,一门课程可由多名教师讲授。则实体教师和课程间的联系是()。
下面不能作为结构化方法软件需求分析工具的是
对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为()。
测试用例包括输入值集和______值集。
随机试题
2008年12月31日,北京举行纪念《告台湾同胞书》发表30周年座谈会。胡锦涛发表重要讲话,提出了推动两岸关系和平发展的重要主张,包括
下列说法正确的是
下列关于律师行政法律责任追究的叙述,正确的是哪一项?()
关于数据电文形式的法律效力,下列理解正确的有()。
下列选项中,()的情况下申请人不可以申请暂缓登记。
材料一:习近平同志在中央党校秋季学习班上的一段讲话:领导干部自觉学习、带头学习,是新形势下提高执政能力、胜任领导工作的必然要求。领导干部选择了学习,就是选择了进步。要重学好学,真正把学习当成一种生活态度、一种工作责任、一种精神追求,坚持在学习中感悟人生、提
政府办事大厅办事难,让你去了解情况,你怎么开展工作。
并非所有的新兴产业都具有战略性,某些新兴产业发展到一定阶段才可能成为战略产业。战略性新兴产业就是具备战略产业部分条件且将来可能成长为战略产业的新兴产业。与其他产业相比,战略性新兴产业具有超强的渗透、扩散作用,既能提升其他产业的技术水平和市场竞争力,也能支撑
(2013-北京-9)我国加快转变经济发展方式的主攻方向是()。
Initsmoreextremeformspersecutionmaniaisarecognizedformofinsanity.Somepeopleimaginethatotherswishtokill
最新回复
(
0
)