首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
57
问题
有如下程序:
#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{intnum;public:A(int){num=i;}A(ABm){num=a.n
关于read()函数的下列描述中,正确的是()。
分布式数据库系统不具有的特点是
将代数式转换成程序设计中的表达式为【】。
能正确表示逻辑关系:“a≥10或a≤0”的C++语言表达式是
C++语言的基本控制结构为顺序结构、选择结构和【】。
一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。
下面C++带有默认参数函数的叙述,正确的是( )。
对于某个函数调用,不给出初调用函数的声明的情况是()。
如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须使用()关键字来修饰。
随机试题
马斯洛主张,教育的目的绝不只限于教学生知识或谋生技能,更重要的是针对学生的情感需求,使其能在认知情感方面均衡发展。()
线性规划法是()法中的一种。
足太阴经腧穴主治不包括
从狭义上看,住房政策重点是指政府为解决贫困者和()家庭住房困难,保障他们基本的住房需要而制定的各种政策。
规模大且技术复杂的工程项目,承包风险较大,各项费用不易估算准确,不宜采用()。
A公司2016年12月31日的股本为20000万股,每股面值为1元,资本公积——股本溢价8000万元,盈余公积3000万元。经股东大会批准,甲公司以银行存款回购本公司股票3000万股并注销,每股回购价为4元。下列各项中,会计处理正确的有()
下列属于设立证券公司的条件的是()
促进就业制度包括()内容。
A.inappropriateB.attendC.slipsD.trackE.financeF.unchangeableG.organizeH.participateI.formalJ.asmuchasK.sl
Nothingcan______theyoungmotherforthelossofherfavoritedaughter.
最新回复
(
0
)