有如下程序: #include<iostream> using namespace std; class Publication{//出版物类 char name[30]; Publication(char*nam

admin2020-07-30  25

问题 有如下程序:
    #include<iostream>
    using namespace std;
    class Publication{//出版物类
    char name[30];
     Publication(char*name=’’未知名称’’){
    strcpy(this->name,name);
    }
    const char*getName()const{return name;}
    virtual const char*getType()const{return’’未知类型’’;}
    class Book:public Publication{//书类
    Book(char*name):Publication(name){}
    virtual const char* getTypeoconst{return’’书’’;}
    void showPublication(Publication&p){
    cout<<p.getType()<<’’:’’<<p.getName()<<end1;
    }
    int main(){
    Book book(’’精彩人生’’);
    showPublication(book);
    return 0:
    }
运行时的输出结果是(   )

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

答案D

解析 因为类Book继承自基类Publication,所以在类Book中的虚常成员函数*getType(){return’’书’’;}就会覆盖基类中的虚常成员函数*getType()const{return’’未知类型’’;},所以在主函数中调用函数showPublication(book)时,getType()函数的输出的结果是“书”,getName()函数的输出结果为“精彩人生”。
转载请注明原文地址:https://jikaoti.com/ti/IGl0FFFM
0

最新回复(0)