单选题 有如下程序:
#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。