问题:
[单选] 有如下程序:#inClude<iostream> using namespaCe std; Class Book{
publiC:
Book(Char*t=””){strCpy(title,t);}
private:
Char titlel40]; };
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。