首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #include using namespace std; class B{ public: virtual void show(){tout
有如下程序; #include using namespace std; class B{ public: virtual void show(){tout
admin
2019-02-22
23
问题
有如下程序;
#include
using namespace std;
class B{
public:
virtual void show(){tout<<"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/VcAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为______。
下面程序段的运行结果是voidmain(){intt,a,b,C;a=1;b=2;C=2;while(a<b<c){t=a;a=b;b=t;c--;}cout<<a
已知有定义:constintD=5;inti=1;doublef=0.32;charc=15;则下列选项错误的是
下列关于C++语言类的描述中错误的是
若已定义inta=256,执行语句cout<<hex<<a;的结果是
下面关于虚函数的描述,错误的是
不能作为重载函数的调用的依据是
在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是
一个算法通常由两种基本要素组成:一是对数据对象的运算和操作,二是______。
数据管理技术发展过程经过了人工管理、文件系统和数据库系统3个阶段,其中数据独立性最高的阶段是______。
随机试题
Pauljusthad______.
女性,42岁。高位肛瘘已有2年,要求彻底治疗,首选的治疗方案是
患者,男,46岁。2级高血压15年。高血压危险因素不包括
面神经主干在茎乳孔附近发生分支,分布于
眩晕的病机,不包括
III类土壤环境质量基本上()。
说明国民经济评价可行的情况是()。
设备调平找正,主要是使设备通过校正调整达到国家规范所规定的质量标准,其作用是()。
某公司分配给人事部的IP地址块为159.167.159.224/27,分配给培训部的IP地址块为159.167.159.208/28,分配给销售部的IP地址块为159.167.159.192/28,那么这三个地址块经过聚合后的地址为()。
Thedemoralizingenvironment,decrepit(老朽的)buildingandminimalmaterialsmakethehighschoolexperienceforthesechildr
最新回复
(
0
)