问答题
使用VC6打开考生文件夹下的工程test12_3,此工程包含一个test12_3.cpp,其中定义了类Base和类A,类A公有继承 Base,但这两个类的定义都并不完整。请按要求完成下列操作,将程序补充完整。 (1)定义枚举类型变量en,它包含两个枚举符front和back,请在注释“//**1**”之后添加适当的语句。 (2)在类Base中添加常成员虚函数void E()的定义,该函数输出“In Base E!”,请在注释“//**2**”之后添加适当的语句。 (3)在类A中添加常成员虚函数void E()的定义,该函数先调用基类中的虚函数 E()再输出“In AE!”,请在注释“//** 3**”之后添加适当的语句。 (4)完成类A构造函数的定义,请使用参数列表的形式初始化类A的成员,并输出“A constructor.”,请在注释“//** 4**”之后添加适当的语句。 输出结果如下: Base constructor. A constructor. In BaseE! In AE! In BaseP! In A! 1 A destructor. Base destructor. 注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。 源程序文件test12_3.cpp清单如下: #include<iostream .h> // ** 1 ** class Base
protected: int b1; int b2; public: Base(); ~Base(); int Getb1()const return b1; void Setb1(int x) b1 = x; int Getb2()const return b2; void Setb2(int y) b2 = y; void Print()const cout<<"In Base P!"<<end1; // ** 2 ** ; Base::Base():b1(1),b2(5)
cout<<"Base constructor."<<endl;
Base::~Base()
cout<<"Base destructor."<<endl;
class A:public Base
protected: en enA; public: A(); ~A(); en GetColor()const return enA; void SetColor(en color) enA = color; void InA()cout<<"In A!"<<endl; // ** 3 **
Base::E(); cout<<"In AE!"<<endl;
; // ** 4 **
cout<<"A constructor."<<endl;
A::~A()
cout<<"A destructor."<<endl;
void main()
A a1; a1.E(); cout<<endl; a1.Print(); a1.InA(); cout<<a1.Getbl()<<endl;