首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序; #include<iostream> using namespace std; class B{ public: virtual void show(){cout<<’’B’’;} };
有如下程序; #include<iostream> using namespace std; class B{ public: virtual void show(){cout<<’’B’’;} };
admin
2019-06-12
53
问题
有如下程序;
#include<iostream>
using namespace std;
class B{
public:
virtual void show(){cout<<’’B’’;}
};
class D:public B{
public:
void show(){cout<<’’D’’;}
};
void funl(B*ptr){ptr->show();}
void fun2(B&ref){ref.show0;}
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,funl()将调用D类中的show()输出字符‘D’;给fun2()出入的实参是基类对象,fun2()调用类B中的show()输出字符‘B’;fun3()由于形参是基类对象,调用的始终都是基类的show(),输出字符‘B’。故最终输出结果是DBB。
转载请注明原文地址:https://www.kaotiyun.com/show/cQ8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
执行下列语句:#includeusingnamespacestd;intmain(){intx:3:if(x=5)cout
有如下类声明:classTestClass{intn;public:TestClass(inti=0):n(i){}voidsetValue(int
在下列关于二叉树的叙述中,正确的一项是()。
下面对对象概念描述正确的是()。
有以下程序:#includeusingnamespacestd;inta;intfun();intmain(){externinta;intb;
若按功能划分,软件测试的方法可以分为白盒测试方法和___________测试方法。
下面关于面向对象的程序设计方法中,正确的是()。
在面向对象方法中,允许作用于某个对象上的操作称为【 】。
随机试题
A.球形病毒B.砖形病毒C.弹状病毒D.丝状病毒E.蝌蚪状病毒噬菌体大多是()
循行于体前正中线的经脉是
关于感光效应与管电压的关系,正确的叙述是
高压氧可用于治疗
避孕片1号每片含避孕针1号每支含
胸痹之心血瘀阻证的临床主要特征是( )。
下列考核方法中属于系统性考核方法的有()。[2007年真题]
普通话中轻声是由音高决定的。(辽宁师范大学2015)
以.txt为扩展名的文件通常是()。
"Ifyouhadtoidentify,inoneword,thereasonthehumanracehasnotachieved,andneverwillachieve,itsfullpotential,th
最新回复
(
0
)