首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
admin
2021-05-06
27
问题
有如下程序:
#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);
delete p;
return 0;
}
执行这个程序的输出结果是( )。
选项
A、BBB
B、BBD
C、DBB
D、DBD
答案
C
解析
在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数,本题中定义类B的对象 b、对象指针*p=new D以及类D的对象d;执行fun1会调用派生类的show函数,因为show函数为虚函数,而调用fun2、fun3仍然为基类的show函数,所以本题答案为C。
转载请注明原文地址:https://kaotiyun.com/show/PFfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
关于函数中的,下列表述中错误的是()。
有如下语句序列:intx=100,&r=x;cout<<x<<’-’<<r<<end1:已知其中变量x的地址为0012FF7C,则执行该语句序列的输出结果为()。
下面对对象概念描述正确的是()。
有如下函数模板定义:templateTfunc(Tx,Ty){returnx*x+y*y;}在下列对func的调用中,错误的是()。
在类中重载赋值运算符时,应将其声明为类的()。
算法的空间复杂度是指()。
在软件开发中,需求分析阶段产生的主要文档是()。
()使一个函数可以定义成对许多不同数据类型完成同一个任务。
设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,reaF15,则循环队列中的元素个数为()。
开发大型软件时,产生困难的根本原因是()。
随机试题
以下法律属于实体法的是
A.针尖B.针身C.针根D.针柄针尖与针柄之间为
鉴别侵蚀性葡萄胎和绒毛膜癌,正确的是
可治疗焦虑症的药物是
治疗暑温痰蒙清窍型由痰浊内蒙引起的深度昏迷,痴呆状者,宜选用治疗暑温痰蒙清窍型属痰火,实火引起的狂躁者,宜选用
有关资本溢价说法正确的是()。
甲乙两县因土地权属纠纷向市政府申请土地确权。市政府裁决争议土地为甲县所有。乙县不服,向省政府申请复议,省政府确认争议土地为乙县所有。甲县不服省政府复议决定,提起行政诉讼,关于该案的管辖,下列说法正确的是()。
在ARM汇编语言程序设计中常有子程序设计,下面指令中不属于子程序调用或者返回的指令是()。
设计窗体时,双击窗体上没有控件的地方,打开的窗口是
InWashingtonthisweek,TreasurySecretaryGeithnerannouncednewstepstorebuildtrustinfinancialmarketsandrestartthef
最新回复
(
0
)