有如下程序: #include<iostream> using namespace std; class Publication{//出版物类 char name[30]; public: Publication(char*name="未知名称")

admin2020-06-29  30

问题 有如下程序:
#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*name):Publication(name){}
virtual const char*getType()const{return"书";}
};
void showPublication(Publication&p){
  cout<  }
  int main(){
    Book book("精彩人生");
    showPublication(book);
    return 0;
  }
  运行时的输出结果是(    )。

选项 A、未知类型:未知名称
B、未知类型:精彩人生
C、书:未知名称
D、书:精彩人生

答案D

解析 因为getl"ype是虚函数,所以p.getType()执行继承类的getType函数,输出“书”;p.getName()执行基类的getName函数,输出“精彩人生”。总共输出“书:精彩人生”,故选D。
转载请注明原文地址:https://kaotiyun.com/show/4zyp777K
0

最新回复(0)