首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
43
问题
有如下程序: #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全国计算机二级
相关试题推荐
若要使用C数学库中的sin函数,需要在源程序的头部加上#include关于引用数学库,以下叙述正确的是()。
数据结构主要研究的是数据的逻辑结构、数据的运算和()。
若有定义:inta,b,c;以下程序段的输出结果是()。a=11;b=3;c=0:printf("%d\n",c=(a/b,a%b));
以下叙述中错误的是()。
在黑盒测试方法中,设计测试用例的主要根据是()。
关于C语言中对文件操作叙述中正确的是()。
设循环队列的存储空间为Q(1:50),初始状态为front=rear=50。现经过一系列入队与退队操作后,front=rear=1,此后又正常地插入了两个元素。最后该队列中的元素个数为
下面描述中,不属于软件危机表现的是()。
数据管理技术发展的三个阶段中,()没有专门的软件对数据进行管理。Ⅰ.人工管理阶段Ⅱ.文件系统阶段Ⅲ.数据库阶段
设表的长度为20。则在最坏情况下,冒泡排序的比较次数为
随机试题
有老师说:“我们分快慢班的目的是满足不同孩子的教育需求,这是遵循教育规律,尊重儿童认知发展差异的举措。” 要求:对上述观点做出判断和分析。要求条理清晰,观点明确,350字左右。
松弛素是由下列哪个结构分泌的()
阴道毛滴虫感染治疗首选
小儿运动功能的发育遵循的原则是:
构成团队的两个基本条件是()。
管理组织模式有两种表现形式。其中一种是将一个大的项目按照公司行政、()、()、()、营销等职能部门的特点与职责,分成若干个子项目,由相应的各职能单元完成各方面的工作。
A公司是一家大型设备生产、销售公司,其主要经营大型设备的销售、安装及后期维护业务。A公司2020年发生了如下经济业务:资料一:2020年2月1日,A公司与甲公司签订一项合同,向甲公司销售一台X大型设备,合同价款为20万元,该设备的成本为13万元,甲公
中华民族的最高利益和根本利益是()。
甲、乙双方签订了货物买卖合同,由甲方向乙方提供货物。后经甲方同意.乙方将合同中的权利、义务转给丙。这样,法律关系发生了变更的是()。
Computerpeopletalkalotabouttheneedforotherpeopletobecome"computer-literate",inotherwords,tolearntounderstan
最新回复
(
0
)