程序分析题:阅读程序后,填写程序的正确运行结果。
下面程序中A是抽象类,其输出是什么?
#include <iostream.h>
class A{
public:
virtual void printMe(){cout<<"This is class A printing. "<<endl;};
} ;
class B:public A{
public:
void printMe() {cout << "This is class B printing. "<<endl;}
} ;
class C:public B{
public:
void printMe() {cout <<"This is class C printing. "<<endl;}
} ;
void print(A a)
{
a.printMe();
}
void main()
{
B b;
C c;
print(b);print(c);
}
【正确答案】:
THIS IS CLASS A PRINTING.
THIS IS CLASS A PRINTING.
【题目解析】:
类B公有继承了类A,类C公有继承了类B,派生类沿着类的层次自动向上继承它所有的直接和间接基类的成员。在C++中,类之间的继承关系具有传递性。
包含纯虚函数的类称为抽象类。因为抽象类中有尚未完成的函数定义,所以它不能实例化一个对象。所以,都输出class A。