首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include #include using namespace std; class Publication{ public: Publication(string n="Unknown")
有如下程序: #include #include using namespace std; class Publication{ public: Publication(string n="Unknown")
admin
2017-02-18
44
问题
有如下程序:
#include
#include
using namespace std;
class Publication{
public:
Publication(string n="Unknown"):name(n){}
const string getName()const{return name;}
virtual const string getType()const{return"Unknown";}
private:
string name;
};
class Book:public Publication{
public:
Book(string name):Publication(name){}
virtual const string getType()const{return"Book";}
};
void showPublication(Publication&p){
cout<
}
int main(){
Book book("C++");
showPublication(book);
return 0;
}
运行时的输出结果是( )。
选项
A、Book:C++
B、Book:Unknown
C、Unknown:C++
D、Unknown:Unknown
答案
A
解析
C++中,多态调用必须满足两个条件:被调用的成员函数是虚函数;必须通过基类类型的引用或指针进行函数调用。
题意的main()函数中首先定义一个Book类对象,对象名为book,在构造book对象时,程序过程如下:首先调用Book类的构造函数,传入参数“C++”,在构造函数执行函数体前,再调用基类Publication的默认构造函数:传入字符串“C++”,基类构造函数在成员初始化列表中,使用传入的参数“C++”为name赋值;此时继承于基类的成员:name存放字符串“C++”。
然后main()函数调用showPublication()函数,传入book对象:showPublication()函数接收Publication类对象的引用p,然后调用p.getType()和p.getName()输出。由于getType()成员函数属于虚函数,p属于基类对象的引用,所以通过p调用getType()函数满足多态调用,执行p实际引用对象类型的getType(),即Book类的getType(),输出:“Book”;而getName()不是成员函数,所以不满足多态调用,执行基类的成员函数getName(),输出name:“C++”。综上,程序输出:Book:C++。本题答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/fIAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列程序的运行结果为#include<iostream.h>inti=0;classA{public:A(){i++;}};voidmain(){Aa,b[3
下面程序的运行结果为#include<iostream.h>classA{intnum;public:A(int){num=i;}A(ABm){num=a.n
数据结构中,与所使用的计算机无关的是数据的
定义如下变量:charone_char,则语句cin>>one_char等价于C语言中的()语句。
C++源晚间中包含的输入/输出头文件为()。
每个C++程序中都必须有且仅有一个
能正确表示逻辑关系:“a≥10或a≤0”的C++语言表达式是
C++语言是以哪种语言为基础逐渐发展演变而成的一种程序设计语言
下面是关于派生类声明的开始部分,其中正确的是
下列对模板的声明中,正确的是
随机试题
护士向她讲解更年期五排卵型功血的治疗原则是康女士想进一步了解"减少经量"的具体措施,护士告知是
某500kV变电站,2台主变压器为三相绕组,容量为750MVA,各侧电压为500/220/35kV,拟在35kV侧装高压并联补偿电容器组,请回答下列问题。为限制3次以上的谐波,电容器组的串联电抗器百分比应选择()。
钢筋原材料进场检验项目中,预应力钢丝的检验项目有()。
根据《反不正当竞争法》的规定,下列行为中属于不正当竞争行为中的混淆行为的是()。
某市对52种建筑防水卷材产品进行质量抽检,其中有8种产品的低温柔度不合格,10种产品的可溶物含量不达标,9种产品的接缝剪切性能不合格,同时两项不合格的有7种,有1种产品这三项都不合格。则三项全部合格的建筑防水卷材产品有多少种?()
货币政策,是指中央银行为实现既定的经济目标运用各种工具调节货币供给和利率,进而影响宏观经济的方针和措施的总和。主要的货币政策措施有:控制货币发行;控制和调节对政府的贷款;推行公开市场业务;改变存款准备会率;调整再贴现率;选择性信用管制;直接信用管制。根据上
以下传统识字教材按编写时间顺序排列,正确的是()。
以出世的精神做人世的事情的思想源自()。
【31】,opticalillusioncancuthighwaycrashes.Japanisacase【32】.Ithasreducedautomobilecrashesonsomeroads【33】nearly
ConsumerBehaviorAconsumeristheultimateuserofaproductorservice./Theoverallconsumermarketconsistsofallbuy
最新回复
(
0
)