首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #include using namespace std; class B{ public: virtual void show(){cout
有如下程序; #include using namespace std; class B{ public: virtual void show(){cout
admin
2020-04-07
53
问题
有如下程序;
#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/Ok8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序#include<iostream.h>voidmain(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;
耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是
已知枚举类型定义语句为:enunlToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};则下列叙述中错误的是
C++中,派生类继承了基类的全部数据成员和除【】之外的全部函数成员。
对于类定义classA{public:virtualvoidfunc1(){}voidfunc2(){}};ClassB:publicA{pu
软件工程研究的内容主要包括:______技术和软件工程管理。
下列关于栈的描述中错误的是()。
在设计程序时,应采纳的原则之一是
数据结构分为线性结构和非线性结构,带链的队列属于【 】。
检查软件产品是否符合需求定义的过程称为
随机试题
在考生文件夹下,“samp1.mdb”数据库文件中已建立表对象“tNorm”。试按以下操作要求,完成表的编辑:(1)根据“tNorm”表的结构,判断并设置主键。(2)将“单位”字段的默认值属性设置为“只”、字段大小属性改为1;将“最高储备”字段大小改为
DearCarl,MariaandRobert,Iamverypleasedtoannouncethatyourprojecthaswonthisyear’sbusinessaward.Congratulat
通过教育过程把受教育者培养成为什么样质量和规格的人是()
根据作用机制分析,奥美拉唑是
山楂的功效是
雇主要求中可能包括( )内容。
语文校本课程是以()为主体开发的适应学生特点的课程,它是广大一线语文教师能够而且应该参与开发的课程。
YoujustboughtanEnglishdictionaryfromafamouse-commercesiteonlytofinditnotasgoodasyouexpected.Writealetter
【B1】【B15】
筷子的使用要追溯到古时候,那时候大部分中国人还是农民。那些农夫不想用脏手拿取食物,也不想被烫着,所以就开始用小树枝(twig)来夹取食物。因为中国人从小就使用筷子,所以他们觉得筷子效率很高.用起来很简单。筷子有木制的、竹制的和塑料制的,通常用右手使用。筷子
最新回复
(
0
)