首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
53
问题
有如下程序: #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全国计算机二级
相关试题推荐
给定程序中,函数fun的作用是:不断从终端读入整数,由变量a统计大于0的个数,用变量c来统计小于0的个数,当输入0时结束输入,并通过形参pa和pb把统计的数据传回主函数进行输出。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果
定义结构体数组structstu{intnum;charname[20];}x[5]={1,"ZHAO",2,"QIAN",3,"SUN",4,"LEE",5,"ZHOU"};for(i=1;i<5;i++)printf("%d%c",x
若有定义“intx,y;”并已正确给变量赋值,则下列选项中与表达式“(x—y)?(x++):(y++)”中的条件表达式“(x—y)”等价的是()。
下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。
以下语句定义正确的是()。
在软件开发中,需求分析阶段产生的主要文档是()。
在面向对象方法中,不属于"对象"基本特点的是()。
在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是()。
一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为( )
以下关于C语言数据类型使用的叙述中错误的是()。
随机试题
WhichofthefollowingisatypicalbilingualcityinCanada?()
临床上常用于测定肾血流量的物质是
颤证的病机为
CT成像对呼吸控制要求最严格的是
女,46岁。既往有泌尿系统感染史,中段尿培养阳性。1周来尿频、尿急、腰酸。尿常规:蛋白280mg/L,红细胞0~1/HP,白细胞(+)/HP,尿亚硝酸盐还原试验阳性。这提示尿中有
病入李女士,36岁,因支原体肺炎入院,予以红霉素静脉滴注,用药3天后,注射部位沿静脉走向出现条索状红线,伴红、肿、热、痛,下列护理措施不妥的是
初产妇,29岁,孕39周,突感剧烈腹痛伴有少量阴道流血,检查:血压150/110mmHg,子宫似足月妊娠大小,硬如木板、有压痛,胎心80次/分,胎位不清,最大的可能是()
各种管道安装工程量,均按设计管道中心线长度,以()计算。
在竣工决算中,下列()可作为无形资产入账。
教学工作的中心环节是()。
最新回复
(
0
)