首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #inc1ude<iostream> using namespace std; class B{ public: virtual void show() {cout
有如下程序; #inc1ude<iostream> using namespace std; class B{ public: virtual void show() {cout
admin
2016-11-23
33
问题
有如下程序;
#inc1ude<iostream>
using namespace std;
class B{
public:
virtual void show() {cout<"B"; }
};
class D:public B {
public:
void show() {cout<"D";}
void funl(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;
funl(p);
fun2(b);
fun3(d);
return 0;
}
程序的输出结果是( )。
选项
A、BBB
B、BBD
C、DBB
D、DBD
答案
C
解析
此题考查的是虚函数与多态性。在成员函数的声明前面加上virual关键字,即可把函数声明为虚函数;在C++中,一个基类指针可以用于指向它的派生类对象,而且通过这样的指针调用虚函数时,被调用的是该指针实际所指向的对象类的那个重定义版本。此题中,funl()和fun20的形参分别是基类的指针和引用,给funl()传入的实参是指向派生类对象的指针p,funl()将调用D类中的show0输出字符‘D’;给fun2()出入的实参是基类对象,fun2()调用类B中的show0输出字符‘B’;fun3()由于形参是基类对象,调用的始终都是基类的show0,输出字符‘B’。故最终输出结果是DBB。
转载请注明原文地址:https://www.kaotiyun.com/show/OzAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有以下程序:#include<iostream>#include<cmath>usingnamespacestd;classDistance;classpoint{public
常用的黑箱测试有等价分类法、______、因果图法和错误推测法4种。
下列程序的运行结果是#include<isotream.h>classA{inta;public:A(){a=0;}A(intaa){
下列运算符中,在C++语言中不能重载的是
下面对于友元函数描述正确的是
为了便于对照检查,测试用例应由输入数据和预期的【】两部分组成。
排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【】和选择排序等。
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。
在算法正确的前提下,评价一个算法的两个标准是【】。
用单链表表示的链式队列的队头在链表的( )位置。
随机试题
组织有效课程的3个标准:_____、_____、_____。
某患者膀胱内超声声像图如下,最可能的诊断为
一无牙颌患者,牙槽嵴低平,戴义齿后主诉咬合痛,检查时未发现黏膜有明显改变。合适处理方法是
商品化会计核算软件开发经销单位在售出软件后应承担售后服务工作,在下列工作中,()不是软件开发销售商必须提供的。
根据《人民币银行结算账户管理办法》的规定,企业可以开设的银行结算账户有()。
下列关于无担保流动资金贷款的说法中,错误的是()。
国家出资企业发生的下列情形中,应当向产权登记机关申办变动产权登记的有()。
甲市A区人大换届选举后,A区爱民社区居民委员会选区36名选民向A区人大常委会提出了罢免要求,要求罢免该选区新当选的A区人大代表陈某。罢免理由是,陈某作为居委会主任,在爱民社区出现水患时,陈某没有及时赶到,在辖区人民群众生命财产受到极大威胁时候,陈某漠不关心
某国海滨城市发生一场特大的地震,引发了多年未见的海啸,使几个核电站进水,被核辐射污染的水有可能被排人大海。以下各项都有助于得出被核辐射污染的水已经排人大海的结论,除了:
下列定义数组的语句中正确的是______。
最新回复
(
0
)