首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
16
问题
有如下程序:
#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全国计算机二级
相关试题推荐
有如下程序 #include <iostream> using namespace std; class Base { protected: Base( ){cout<<’A’; } Base(char c)
有以下程序 #include<iostream> using namespace std; class MyClass { public: MyClass(intn) {number=n;} //拷贝构造
有以下类定义 class MyClass { private: int id; char gender; char*phone; public: MyClass():id(0),
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:每卖出一个瓜,则计算瓜的重量,还要计算所有卖出瓜的总重量以及总个数,同时允许退货,请按照以下的操作,把类补充完整
使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为:Constructor,i=0,Destructor注意:错误的语句在//******error******的下面,修
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成列操作,将类的定义补充完整,实现以下功能:(1)完成CBook类构造函数,对整型变量ID和作者Author进行赋值,请在注释//********1*****
使用VC6打开考生文件夹下的源程序文件modil.cpp。本程序要求输入一字符串,然后将其中的小写字母改变成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到界面。注意:不要改动main函数,不能增行或删行,也不能
数据库管理系统(DBMS)是
随机试题
Mostofthemeetingwasspentgoingoverthesales________fromthepreviousmonth.
男性,52岁,肝炎病史10年,4年前开始出现上腹不适,腹胀、牙龈出血明显。查体:皮肤黄染,前胸可见蜘蛛痣,腹略隆,肝脏未及,脾肋下3cm,移动性浊音(+)。血白细胞2.8×109/L,血小板50×109/L,血红蛋白75g/L(7.5g/d1)。问:
为了保护劳动者的身体健康,根据相关的防暑降温和防冻取暖的法律规定,当室内温度经常高于________,低于_______时,应采取降温取暖措施。()
终末血尿病变部位在
直接安装在管道上的仪表,应随同管道进行()。
根据我国法律制度的规定,下列各项中,能够成为法律关系主体的有()。
在一定条件下,朦胧比清晰更富美感。古人云:“马上看壮士,月下看美人。”据天文学家称.即使是满月——十五的月亮,其亮度也只相当于阳光的五十万分之一。长江三陕的神女峰,终年云雾缭绕,其险峻奇诡尽在半遮半掩之中,故有“半入仙境半人间”的飘渺意境。这种“
Object-oriented DBMS integrated a variety of(81)data types-such as business procedures, graphics, pictures, voice and annotated
A、Becausetheymastermorethanonelanguage.B、Becausetheyutilizelanguageswithliteracyskills.C、Becausetheydowellina
HisEnglishis(good)______thananyoneelse’sinhisclass.
最新回复
(
0
)