首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #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
39
问题
有如下程序;
#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>classA{intx;public:A(inta){x=a;}friendclass
如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是
通常初始化拷贝构造函数的参数是
以下关于私有和保护成员的叙述中,不正确的是
与数学式子对应的C++语言表达式是
执行下列程序的结果是main(){floatx=1,y;y=++x*++x;cout<<y<<endl;}
面向对象的开发方法中,类与对象的关系是
当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为
随机试题
男女双方基于一定的客观现实基础和共同的生活理想,在各自内心形成的最真挚的彼此倾慕、互相爱悦,并渴望对方成为自己的终身伴侣的最强烈持久、纯洁专一的感情是
Windows的设备管理程序支持即插即用(PnP)功能。
轻度慢性肝炎的特征性病变足
下列论述中,()不符合本质安全化原则的论点。
企业采用权责发生制作为核算基础,下列各项中,不属于本期收入或费用的是()。
在中国境外设立的中国企业,在向国内报送财务报表时应当()。
下列属于《中小学教师职业道德规范》内容的是()
维生素对维持人体机能非常重要,某保健品公司以此为卖点宣传其生产的营养品。该公司称其产品每份的维生素含量是人体日常需求的1.5倍,可以充分满足人体对各种维生素的需求。然而,_____因此,该公司进行了虚假的宣传。以下哪个选项放到上文划线处最合适?
Intheprecedingfigure,eachofthefoursquareshassidesoflength2x.IftrianglePQRisformedbyjoiningthecentersofth
Thereasonsomechildrenarebackwardinspeakingtodayisthat______.Accordingtothepassage,whichofthefollowingisTRU
最新回复
(
0
)