首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #inc1ude<iostream> using namespace std; c1ass B{ public: virtualvoidshow(){cout<<"B";} }; c1a
有如下程序; #inc1ude<iostream> using namespace std; c1ass B{ public: virtualvoidshow(){cout<<"B";} }; c1a
admin
2017-06-18
69
问题
有如下程序;
#inc1ude<iostream>
using namespace std;
c1ass B{
public:
virtualvoidshow(){cout<<"B";}
};
c1ass D:public B{
public:
void show(){count<<"D";}
};
void funl(B *ptr){ptr—>show();)
void fun2(B &ref){rer.show();}
void fun3(B b){b.show();}
int main(){
B b,*p=new D;
D d;
fun1(p);
fun2(b);
fun3(d);
retum 0;
}
程序的输出结果是( )。
选项
A、BBB
B、BBD
C、DBB
D、DBD
答案
C
解析
此题考查的是虚函数与多态性。在成员函数的声明前面加上virual关键字,即可把函数声明为虚函数:在C++中,一个基类指针可以用于指向它的派生类对象,而且通过这样的指针调用虚函数时,被调用的是该指针实际所指向的对象类的那个重定义版本。此题中,fun10和fun2()的形参分别是基类的指针和引用,给fun1()传入的实参是指向派生类对象的指针p,fun1()将调用D类中的showO输出字符’D’;给fun2()出入的实参是基类对象,fun2()调用类B中的show0输出字符’B’:fum3()由于形参是基类对象,调用的始终都是基类的show0,输出字符’B’。故最终输出结果是DBB。
转载请注明原文地址:https://kaotiyun.com/show/phAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下面程序输出的结果是( )。 #include<iostream> using namespace std; class A{ int X; public: A(int x):x(++x){}
对于函数原型void function(int x,float y,char z=’a’),合法的函数调用是( )。
下列关于C++多态性的叙述,正确的是( )。
如果表达式--x/y中的“--”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为
下列对变量的引用中,错误的是
在最坏情况下,冒泡排序所需要的比较次数为
设单链表中结点的结构为(data,link)。已知指针q所指结点是指针p所指结点的直接前驱,若在*q与*p之间插入结点*s,则应执行下列哪一个操作?( )。
下列关于多态性的描述,错误的是
有以下程序段int k=0;while(k=1)k++;while 如循环执行的次数是
在长度为n的有序线性表中进行二分查找,需要的比较次数为
随机试题
股票市场投资的特点有()
腹主动脉瘤的常见病因是_______。
患者女,52岁,右侧进行性鼻塞,涕血3个月余,鼻腔检查见右侧鼻腔暗红色新生物,质较硬,触之出血不多,似来自鼻顶部,下部达右下鼻甲上缘。若CT扫描显示,肿瘤主要位于鼻腔内,筛板局部破坏,颅内未见肿瘤,该患者较好的治疗方法应是
下面所列工程建设定额中,属于按定额编制程序和用途分类的是()。
自然人可根据需要申请开立个人银行结算账户,也可以在已开立的储蓄账户中选择并向开户银行申请确认为个人银行结算账户。()
在商业银行贷前调查中,贷款合法合规性调查主要包括()。[2016年6月真题]
下列哪一项不是“字体”对话框中的“字符间距”选项卡中的选项?()
下列各句中,语义明确、没有歧义的一句是:
设A和B都是m×n实矩阵,满足r(A+B)=n,证明ATA+BTB正定.
程序测试分为静态分析和动态测试。其中【】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
最新回复
(
0
)