首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #include using namespace std; class B{ public: virtual void show(){cout
有如下程序; #include using namespace std; class B{ public: virtual void show(){cout
admin
2015-09-14
35
问题
有如下程序;
#include
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
解析
此题考查的是虚函数与多态性。在成员函数的声明前面加上virual关键字,即可把函数声明为虚函数;在C++中,一个基类指针可以用于指向它的派生类对象,而且通过这样的指针调用虚函数时,被调用的是该指针实际所指向的对象类的那个重定义版本。此题中,fun1()和fun2()的形参分别是基类的指针和引用,给fun1()传入的实参是指向派生类对象的指针p,fun1()将调用D类中的show()输出字符‘D’:给。fun2()出入的实参是基类对象,fun2()调用类B中的show()输出字符‘B’:fun3()由于形参是基类对象,调用的始终都是基类的show(),输出字符‘B’。故最终输出结果是DBB。
转载请注明原文地址:https://kaotiyun.com/show/kqNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
一些重要的程序语言(如C语言和Pascal语言)允许过程的递归调用。而实现递归调用中的存储分配通常用
完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是
在下面程序的横线处填上适当的语句,使该程序的输出为12。#include<iostream>usingnamespacestd;classBase{public:int
关于静态数据成员的描述中正确的是
分布式数据库系统不具有的特点是
有以下程序#include<iostream>usingnamespacestd;classsample{private:intx;public:sample(intA
operator是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为【】的。
两个变量定义不能同名,是因为()。
已知程序的结果为123,请填空。#include<iostream.h>template<classT>classA{public:Tx,y,
假定int类型变量占用两个字节,其有定义intx[10]={0,2,4};,则数组x在内存中所占字节数是
随机试题
简述农村社区的特点。
内脏下垂的主要病机是
A.丹蒌片B.冠心苏合丸C.益心舒胶囊D.复方丹参滴丸E.芪参益气滴丸胸痛胸闷,胸胁胀满,心悸,应选用的中成药是()。
电机干燥中,可采用的通电干燥法不包括( )。
在Word窗口中,用户不可以( )。
根据《合同法》,下列选项中关于违约责任的说法正确的有()。
在需要相对人无条件遵从的时候,()是最有效的。
随着信息网络的普及和工业产品的智能化,信息消费规模将不断取得新突破,对工业乃至国民经济的带动作用日益加大。目前各类以先进信息技术为支撑的智能产品和服务正在快速培育,这将催生一大批应用亮点和新型供给。以虚拟现实、增强现实技术为例,其快速发展使虚实交融的沉浸式
在下面的VisualFoxPro表达式中,运算结果为逻辑真的是
Mostcareersorganizationshighlightthreestagesforgraduatestofollowintheprocessofsecuringasuitablecareer:recogni
最新回复
(
0
)