首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
24
问题
有如下程序:
#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://jikaoti.com/ti/hkt0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在C++语言的面向对象程序设计框架中,【】是程序的基本组成单元。
若执行下面的程序时,从键盘上输入5和2,则输出结果是#include<iostream.h>voidmain(){inta,b,k;cin>>a>>b;
模板使我们可以用一个代码段指定一组相关函数(称为______)或一组相关类(称为______。
程序的结果为【】。#include"iostream.h"template<typenameT>Ttotal(T*data){Ts=0;wh
有如下类的定义,下划线处的语句是()。classMyClass{______intx,y;public;MyClass(inta=0,intb=0)
下面的说明中,正确的函数定义是()。
下面四个关键字中,说明友元函数的是( )。
关于关键字class和typename,下列表述正确的是
一个函数带有参数说明时,则参数的默认值应该在()中给出。
已知下列语句中的x和y都是int型变量,其中错误的语句是
随机试题
对于毒物不明者洗胃时,洗胃液可选择()
对于脑膜炎双球菌,下列哪些正确
心脏骤停时,心肺复苏的首选药物是()
为保障机械正常运输所需替换设备,随机工具器具的摊销费用,属于()。
高温作业分级标准按照工作地点和作业时间不同将高温作业分为4级。下列关于高温作业分级依据的叙述中,不正确的是()。
赵某向张某借款,以自己的一台便携式电脑作为抵押,并在抵押合同中约定到期不清偿该便携式电脑即归张某所有,但未办理登记手续。对此,下列说法符合规定的是()。
下列实质性程序中,与营业收入完整性认定最相关的是()。
每一个企业()的安全。
(2009年单选26)根据香港特别行政区基本法的规定,香港特别行政区境内的土地和自然资源属于()。
下列选项中不属于而向对象程序设计特征的是
最新回复
(
0
)