单选题
有如下程序:
# include<iostream>
using namespace std;
class Publication{//出版物类
char name[30];
public:
Publication(char*name="未知名称"){
~strcpy(this->name,name);
}
const char*getName()const{return name;)
virtual const char*getType()const{return"未知类型";}
};
class Book:public Publication{//书类
public:
Book(char*namc):Publication(name){)
viriual const char*getType()const{return "书";}
};
void showPublication(Publication&p){
cout<<p.getType()<<":"<<p.getName()<<endl;
}
int main(){
Book book("精彩人生");
showPublication(book);
return 0;
}
运行时的输出结果是______。
【正确答案】
D
【答案解析】[解析] 因为getType是虚函数,所以p.getType()执行继承类的getType函数,输出“书”;p.getName()执行基类的getName函数,输出“精彩人生”。总共输出“书:精彩人生”,故选D。