首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #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
72
问题
有如下程序;
#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全国计算机二级
相关试题推荐
下面的描述中,正确的是()。
当需要将一个函数boolisnumber(charc)声明为内联函数时,则此内联函数的函数原型为()。
Staff类含有int型数据成员ID,两个Staff对象相等是指它们的ID相同。下面的函数重载了运算符==,它用来判断两个Staff对象是否相等,相等时返回true,否则返回false。请将横线处缺失部分补充完整。boolStaff::Staf
若有整型变量x=2,则表达式x<<2的结果是【】。
在深度为5的完全二叉树中,叶子结点的个数最多为【 】。
下面不属于软件工程的3个要素的是()。
程序的测试方法分为静态分析和动态分析。使用测试用例在计算机上运行程序,使程序在运行过程中暴露错误,这种方法称为【 】。
下列数据结构中,属于非线性结构的是
检查软件产品是否符合需求定义的过程称为()。
随机试题
试述各种成交心理障碍及其克服方法。
病毒性心肌炎患儿在急性期应至少卧床休息至热退后
外邪犯胃呕吐,若兼有恶寒发热,选方宜夏季感受暑湿,呕吐而兼心烦口渴,选方宜
(2009年)直径相同两圆管,已知流量比为2:1,则雷诺数之比为()。
生态系统指包括特定地段中的全部生物和物理环境的统一体。具体说:生态系统是()。
在黏土心墙施工中,可采用()等施工方法。
通过分析国外某些产品的生命周期的发展变化,来预测国内同类产品的需求变化。这种预测方法属于()。
根据企业破产法律制度的规定,下列表述中,正确的有()。(2009年)
下列哪种情况属于注册会计师的普通过失?( )
简述知觉不同于感觉的特征。
最新回复
(
0
)