首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
40
问题
有如下程序:
#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>②classA③{④public:⑤intn=2;⑥A(intval){cout<<val<<end1;}⑦
软件危机出现于20世纪60年代末,为了解决软件危机,人们提出用______的原理来设计软件,这就是软件工程诞生的基础。
定义如下变量:charone_char,则语句cin>>one_char等价于C语言中的()语句。
对于模板定义关键字class和typename说法不正确的是
拷贝构造函数的参数一般是
下列有关指针的用法中错误的是()。
下面关于构造函数和析构函数的描述,错误的是()。
C++语言中关于构造函数的说法正确的是
下列语句段将输出字符’*’的个数为inti=100;while(1){i--;if(i==0)break;cout,,’*’;}
下面是复数类complex的定义,其中作为友元函数重载的运算符“--”的功能是将参数对象的实部减1,然后返回对该对象的引用;请补充完整。classcomplex{private:intreal;iht
随机试题
A.高热,B超发现肝右叶肿物内含不均匀液性回声B.血清AFP升高,B超发现肝右叶实性肿物C.B超发现肝右叶囊性肿物,卡松尼(Casoni)试验阳性D.B超发现肝及肾多发囊性肿物E.右肝内肿物10年,CT增强扫描见肿
江苏省某卫生院发生了一起口服过期疫苗事件。百余名儿童接种了过期脊髓灰质炎疫苗。这起事件的相关责任单位和责任人被严肃问责处罚。针对此次过期疫苗事件暴露出的问题,省政府对疫苗生产、流通、采购、接种等各环节进行彻底排查整治,做到全链条、全过程、全覆盖,确保措施落
世界上最大的内河港是:
根据《利用外资改组国有企业暂行规定》,被改组企业属于( )的,其改组申请由国务院经济贸易主管部门审核。
一名小学生上课不敢主动举手回答问题,当他一旦主动举手回答问题,老师就给予表扬、鼓励,渐渐地他养成了勇于举手回答问题的行为方式。在这个过程中,教师采取了()。
校长:老师:园丁
culturalpluralism.
在商品经济运行中,价值、价格和供求三者之间的关系是人.价格受供求关系影响,围绕价值上下波动
Whendoestheconversationtakeplace?
HowtoConquerPublicSpeakingFearⅠ.IntroductionA.Publicspeaking—acommonsourceofstressforeveryoneB.Thetr
最新回复
(
0
)