单选题
有如下程序: #include
using namespace std; class Book{ public: Book(char * t=""){strepy(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<
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。
提交答案
关闭