首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
43
问题
有如下程序:
#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://www.kaotiyun.com/show/fIAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下面程序错误的语句是①#include<iostream.h>②voidmain()③{④int*p=newint[1]⑤p=9⑥cout<<*p<<end1;⑦
______是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。
软件危机出现于20世纪60年代末,为了解决软件危机,人们提出用______的原理来设计软件,这就是软件工程诞生的基础。
以下程序的输出结果是#include<iostream.h>longfun(intn){longs;if(n=1||n=2)s=2;elses=n-
下列程序是用来判断数组中特定元素的位置所在,则输出结果为#include<conio.h>#include<iostream.h>intfun(int*s,intt,int*k){i
类MyClass的定义如下:classMyClass{public:MyClass(){value=0;}SetVariable(inti){value=i;)
软件工程研究的内容主要包括【】技术和软件工程管理。
下列对模板的声明中正确的是
关于二义性的描述错误的是
下面是关于派生类声明的开始部分,其中正确的是
随机试题
下列行为中,属于会计工作政府监督的是()。
A.3个非同源亚基B.3个同源亚基C.2个非同源亚基D.2个同源亚基E.1个亚基G蛋白有
下列辅食适于7个月小儿添加的是
性联无丙种球蛋白血症获得性免疫缺陷综合征
大量饮清水后抗利尿激素分泌减少主要是由于()。
铁路工程勘察时要求采用K30方法测定地基系数,现采用直径30cm的荷载板进行竖向荷载试验得到一组数据见表14.2.1。试问:确定K30值最接近下列()项。
某企业大批量生产某种单一产品,该企业为了编制下年度的年度、季度计划,正进行生产能力核算工作。该企业全年制度工作日为250天,两班制,每班有效工作时间7.5小时。已知:某车间共有车床20台,该车间单件产品时间定额为1小时;某钳工车间生产面积:145平方米,每
普查是()。
阅读下列材料,回答问题。一次,我正在布置作业:“每个生字写五遍。”就听有个同学小声说:“都会写了,还让写!”我没说话就下课了。但这件事引起了我的反思,在班会上,我提出了“教师怎样留作业”的问题。经过商讨,同学们一致同意:常规性的作业应该写,但可以
没有任职限制的人员有()。
最新回复
(
0
)