首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
55
问题
有如下程序:
#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>②voidmain()③{④int*p=newint[1]⑤p=9⑥cout<<*p<<end1;⑦
______是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。
在下面四个选项中,()是用来声明虚函数的。
C++源晚间中包含的输入/输出头文件为()。
拷贝构造函数的参数一般是
下面程序的结果是#include<iostream.h>classA{public:A(){cout<<"construtA"<<endl;}vir
以下定义数组中错误的是
下列对模板的声明中正确的是
下列对模板的声明中,正确的是
已知在函数func()中语句this->ff=0;与语句ff=0;的效果完全相同。对于这一现象,下列表述中错误的是
随机试题
青霉素结合蛋白(PBP)一旦与抗生素亲和力升高,就可导致细菌耐药。
人民法院执行行政诉讼判决裁定时,可以向下列哪些主体发出司法建议?
一般来说,流动比率一般维持在()左右较为理想。
提出“观察学习”和“模仿”的是()。
教学永远具有教育性,这句话反映了()
我党具有旺盛创造力的关键是()。
小明和小红各有若干块巧克力,小明拿出20块给小红,小红再拿出现有的三分之一给小明,这时他们各有60块巧克力,则小明、小红原来各有()块巧克力。
ADifferentsportsrequiredifferenttrainingprograms.BSciencemaybetooimportanttoday.CSportsequipmenthasbeenimp
MywritinginmylateteensandearlyadulthoodwasfashionedaftertheU.S.shortstoriesandpoetrytaughtinthehighschools
A、Developedeconomiesreturnedtoslightgrowthinthepasttwelvemonths.B、Japan,theU.S.andtheU.Kcontinuedtolagbehi
最新回复
(
0
)