有如下程序: #include<iostream> using namespace std; class Book{ public: Book(char * t=" "){strcpy(title,t);}

admin2020-10-21  30

问题 有如下程序:
    #include<iostream>
    using namespace std;
    class Book{
    public:
    Book(char * t=" "){strcpy(title,t);}
    private:
    char title[40];
    };
    class Novel:public Book{
    public:
    Novel(char * t=" "):Book(t){}
    char * Category()const{return"文学";}
    };
    int main(){
    Book * pb;
    pb=new Novel();
    cout<<pb->Category();
    delete pb;
    return 0;
    }
    若程序运行时输出结果是“文学”,则横线处缺失的语句是(    )。

选项 A、char * Category( );
B、char * Category( )const;
C、virtual char * Category( )const;
D、virtual char * Category( )const=0;

答案D

解析 本题考查纯虚函数和抽象类,纯虚函数是在声明虚函数时被“初始化”为0的函数,包含纯虚函数的类为抽象类,抽象类是不能被实例化的,但是可以定义指向抽象类数据的指针变量,当派生类成为具体类后,就可以用这种指针指向派生类的对象,然后通过该指针调用虚函数,实现多态性的操作。所以本题答案为D。
转载请注明原文地址:https://jikaoti.com/ti/7tl0FFFM
0

最新回复(0)