首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
11
问题
有如下程序:
#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://jikaoti.com/ti/6Fl0FFFM
本试题收录于:
二级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;} //拷贝构造
有如下程序:#include#includeusingnamespacestd;classXCD{char*a;intb;public:XCD(char;l:aa,intbB){a=flewchar[strlen(aA)+1]
有如下程序: #include<iostream> using namespace std; class BASE { public: ~BASE(){cout<<"BASE";} }; cl
在重载一个运算符为成员函数时,其参数表中没有任何参数,这说明该运算符是
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:每卖出一个瓜,则计算瓜的重量,还要计算所有卖出瓜的总重量以及总个数,同时允许退货,请按照以下的操作,把类补充完整
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(char*data),此函数的功能是,找出字符串数组中最小的ASCII值,如果有相同变量,则输出最后一个所在的位置;如果字符串为空,则返回-1;或者不存在时也返回-1。注
住关系数据库中,用来表示实体间联系的是
数据库管理系统的基本功能不包括
下列运算符中,不能被重载的是()。
随机试题
在Excel默认情况下,单元格中数值数据靠()对齐。
元气运行的通道是
下列合同中,不属于主合同的是()。
下列有关消费税征税规定的表述,正确的是()。
钟楼及其以西的斜街一带,成为元大都最大的商业中心。()
刺激泛化与刺激分化是互补过程。()
鸦片战争后,中国逐步被卷入资本主义世界市场。得出该结论的主要依据不包括()。
"Youneedanapartmentaloneevenifit’soveragarage,"declaredHelenGurleyBrowninher1962bestseller"SexandtheSingle
AskanAmericanschoolchildwhatheorsheislearninginschoolthesedaysandyoumightevengetareply,providedyouaskit
PeoplelivingonpartsofthesouthcoastofEnglandfaceaseriousproblem.In1993,theownersofalargehotelandofseveral
最新回复
(
0
)