首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
有如下程序: #include using namespace std; class B { public: virtual void show() { cout
admin
2020-05-14
39
问题
有如下程序:
#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/IS8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
A、 B、 C、 D、 D如果派生类私有继承基类,不能访问基类中的私有成员,所以A)、B)是错误的。派生类是对基类的具体化,所以c)错误的。如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类,即选择
一个函数为void f(int,char ch=’a’),另一个函数为void f(int),则它们( )。
对虚函数的调用()。
要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是30,50,-88,0和0,则下列定义语句中错误的是()。
请指出程序片段的语法错误______。
下列关于虚函数的说法中,正确的是()。
A、 B、 C、 D、 D在软件开发的过程中,应该尽早的制定测试计划,其中在需求分析阶段制定系统测试计划,在概要设计阶段制定集成测试计划,在详细设计阶段制定单元测试计划。
在一个函数的定义或声明前加上关键字【】时,该函数就声明为内联函数。
关于类和对象的说法,不正确的是()。
C++语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取【】方式。
随机试题
设四元齐次线性方程组(1)为另一四元齐次线性方程组(2)的一个基础解系为α1=(2,-1,a+2,1)T,α2=(-1,2,4,a+8)T。当a为何值时,方程组(1)与方程组(2)有非零公共解,
计算下列不定积分:
若实现输入电阻高、输出电压稳定的电压放大电路,需引入的负反馈类型是【】
应全球企业法律顾问协会(ACC)的邀请,国务院国有资产监督管理委员会率中国代表团参加了该协会()年会。
承发包双方在施工合同中约定的和合同价款无关的事项有()。
我国古代丝绸之路的开拓始于()。
否定之否定规律揭示了事物发展的源泉和动力。()
论述国际反法西斯联盟的形成及其历史意义。
某次测验有50道判断题,每答对一道得3分,不答或答错一道倒扣1分。某学生共得了82分,则该学生答对
设随机变量X1,X2,…,Xn(n>1)独立同分布,且其方差σ2>0,令Y=则()
最新回复
(
0
)