有如下程序: #include using namespace std; class Book { public: Book(char* t=" ") { strcpy(title,t); } private: char title[40]; }; cl

admin2015-07-22  29

问题 有如下程序:
#include
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<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://kaotiyun.com/show/vyNp777K
0

最新回复(0)