首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include<iostream> #include<string> using namespace std; class Publication{ public: Publication(string n="Unknown"):name(
有如下程序: #include<iostream> #include<string> using namespace std; class Publication{ public: Publication(string n="Unknown"):name(
admin
2021-02-22
19
问题
有如下程序:
#include<iostream>
#include<string>
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:publicPublication{
public:
Book(string name):Publication(name){}
virtual const string getType()const{return"Book";}
};
void showPublication(Publication&p){
cout<<p.getType()<<":"<<P.getName()<<endl;
}
int main(){
Book book("C++");
showPublication(book);
return0;
}
运行时的输出结果是( )。
选项
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/Q7yp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下类声明: class Foo{ int bar; }; 则Foo类的成员bar是
有如下程序:#include#includeusingnamespacestd;classXCD{char*a;intb;public:XCD(char;l:aa,intbB){a=flewchar[strlen(aA)+1]
下列关于派生类构造函数和析构函数的说法中,错误的是
有如下程序: #include<iostream> using namespace std; class Base { pubfic: Base(){cout<<"BB";
下列关于文件流的描述中,正确的是()。A)文件流只能完成针对磁盘文件的输入和输出B)建立一个文件流对象时,必须同时打开一个文件C)若输入流要打开的文件不存在,将建立一个新文件D)若输出流要打开的文件不存在,将建立一个新文件
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:每卖出一个瓜,则计算瓜的重量,还要计算所有卖出瓜的总重量以及总个数,同时允许退货,请按照以下的操作,把类补充完整
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序,使该程序输出倒9×9口诀。程序分析:分行与列考虑,共9行9列,设置两个变量i和j,i控制行,j控制列。程序运行结果如下:1*9=9
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(char*data),此函数的功能是,找出字符串数组中最小的ASCII值,如果有相同变量,则输出最后一个所在的位置;如果字符串为空,则返回-1;或者不存在时也返回-1。注
使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正确运行,并且使程序输出的结果为:30130注意:错误的语句在//*****error******的下面,修改该语句即可。#
随机试题
投标人在投标过程中出现()时,招标人可以没收投标人递交的投标保证金。
疏浚工程实施中的环保措施有()。
下列不属于审计质量控制客体的是()。
进行基准分析,在选择基准对象时主要关注()。
亚氨基锂(Li2NH)是一种储氢容量高、安全性好的固体储材料,其储氢原理可表示为:。有关说法正确的是()。
所谓热污染,是指现代工业生产和生活中排放的废热所造成的环境污染。热污染可以污染大气和水体。火力发电厂、核电站和钢铁厂的冷却系统排出的热水,以及石油、化工、造纸等工厂排出的生产性废水中均含有大量废热。这些废热排人地面水体之后,能使水温升高。在工业发达的美国,
教育行动研究的特点就是在教育行动中研究。
(2009年单选21)与西方议会制度比较,下列选项中属于我国人民代表大会制度特点的是()。
1983午后,ARPANET分军用和民用两个领域,再加上美国国家科学基金会建立的通信网络,使得普通科技人员也能利用该网络。随着TCP/IP协议的发展与完善,世界各国的网络均以TC/IP协议连接到该网络上,逐渐发展形成目前规模宏大的Internet。这是因特
A、Theemployerandemployee.B、Theinterviewerandinterviewee.C、Theteacherandstudent.D、Thepoliceofficeranddriver.D预览选
最新回复
(
0
)