首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #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
43
问题
有如下程序;
#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全国计算机二级
相关试题推荐
下面程序的输出结果是#include<iostream.h>#include<string.h>voidmain(){charp1[10],p2[10];strcpy(p1,"abc");s
下面不属于软件设计原则的是
磁盘文件操作中,打开磁盘文件的访问方式中以追加方式打开文件的
在派生类中,对类对象成员,基类成员和非类对象成员的初始化程序是______。
数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是______。
有如下程序:#include<iostream>usingnamespacestd;classpoint{intx,y;public:point(intvx,intvy){x=vx;
软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指()。
若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用头文件______。
在数据库系统中,用户所见的数据模式为
A、 B、 C、 D、 BPoint&operator++(){x++;return*this;}是在成员函数运算符重载单目运算符(前缀方式),Pointoperator++(int){Poin
随机试题
首选用于治疗支气管哮喘发作期热哮证的方剂是()
关于开庭质证,下列说法不正确的是()。
红木制衣柜
康乐气候
在进行完教学内容之后,教师要指导学生完成课堂作业。教师在进行指导时,应注意的事项有()
有报道称,由于人类大量排放温室气体,过去150多年中全球气温一直在持续上升。但与1970年至1998年相比,1999年至今全球表面平均气温的上升速度明显放缓,近15年来该平均气温的上升幅度不明显,因此全球变暖并不是那么严重。如果以下各项为真,最能削弱上述论
价值规律是商品经济的基本规律,它的外在表现是
【S1】【S3】
Thetwodelegateshadanin-depthexchangeofviewsonhowtoenhancetheir_____cooperation.
PatentPatents【T1】______thechancesofinventorstomakemoneyfrom【T2】______.【T3】______.Duringthattime,theinventor【T4】
最新回复
(
0
)