首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
16
问题
有如下程序:
#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全国计算机二级
相关试题推荐
在数据库设计中,将E-R图转换成关系数据模型的过程属于
关于read()函数的下列描述中,正确的是()。
下列对基类和派生类关系的描述中,错误的是()。
若执行下面的程序时,从键盘上输入5和2,则输出结果是#include<iostream.h>voidmain(){inta,b,k;cin>>a>>b;
设变量a是int型,f是double型,i是float型,则表达式10+’a’+i*f值的数据类型
下面的说明中,正确的函数定义是()。
下列语句段将输出字符’*’的个数为inti=100;while(1){i--;if(i==0)break;cout,,’*’;}
下面四个关键字中,说明友元函数的是( )。
下列对模板的声明中,正确的是
随机试题
流言与以下哪些方面密切相关?()
患者,女,22岁。心界向左下扩大,心尖部第一心音减弱并闻及4/6级粗糙的全收缩期杂音,向左腋下传导,P2亢进,应考虑
继发性高血压不见于下列哪项疾病
不符合萎缩的是
甲公司新进一批家具,董事长张某超越权限以甲公司的名义与不知情的乙公司订立该批家具的买卖合同,而甲的分公司亦以自己的名义与丙公司订立了该批家具的买卖合同,甲公司不知晓前两个合同而与丁公司订立该批家具的买卖合同,甲公司的司机王某在驾车将该批家具送往公司的路上时
下列各项收入中,不属于建造(施工)合同收入的是()。
根据我国《公务员法》的规定,以下选项中属于公务员应履行的义务是()。
建设中国特色社会主义的首要的基本理论问题,就是要搞清楚
在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为
Wehaveto______thecostofsettingupanewhospitalinthatarea.
最新回复
(
0
)