首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
26
问题
有如下程序: #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全国计算机二级
相关试题推荐
给定程序modi1.c的主函数中,将a、b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun()的作用是:累加链表结点数据域中的数据作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动ma
关系数据模型
有以下程序#include<stdio.h>main(){chars[10]="verygood",*ps=s;ps+=4;ps="nice";puts(s);
将E-R图转换为关系模式时,实体和联系都可以表示为()。
关于C语言中对文件操作叙述中正确的是()。
下列给定程序中,是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请改正程序指定部位的错误,使它能得到正确结果。注意:不要改动main函
以下标识符不是关键字的是()。
算法空间复杂度的度量方法是
C语言中char类型数据占字节数为()。
对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为()。
随机试题
对于函数以下结论中正确的是().
含有罂粟壳的处方应保留的时间是
阿米巴痢疾在疫情管理上属何类传染病
I/I0指
确诊肺结核最重要的依据为
根据市场供求状况和商品特点,对某些类别的商品实行专营或者专卖的调控手段,属于商品流通宏观经济手段的()手段。
普桑的艺术素养决定了他选择一些具有“__________”的绘画题材,他画的人物也是按照__________、__________的雕刻形象塑造的。
贤士隐居者士子修己笃学,独善其身,不求知于人,人亦莫能知者,所至或有之,予每惜其无传。比得《上虞李孟传》录示四事,故谨书之。其一日,慈溪蒋季庄,当宣和间,鄙王氏①之学,不事科举,闭门穷经,不妄与人接。高抑崇居明州城中,率一岁四五访其庐。
A、 B、 C、 B
Lightningcausesmorefiredamageofforestsandpropertythananythingelse.Moreimportantly,itkillsmorepeoplethananyot
最新回复
(
0
)