使用VC6打开考生文件夹下的工程test12_3,此工程包含一个test12_3.cpp,其中定义了类Base和类A,类A公有继承 Base,但这两个类的定义都并不完整。请按要求完成下列操作,将程序补充完整。 (1)定义枚举类型变量en,它包含两个枚

admin2009-01-15  86

问题 使用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;
   }

选项

答案(1) enum en{front, back}; (2) virtual void E()Const{cout<<"In BaseE!"<<endl;} (3) virtual void E()const (4) A::A():enA(front)

解析 主要考查考生对于枚举和虚函数的定义的掌握,注意(1)中枚举类型使用enum关键字定义,它实际上就是一个有名字的常量,定义格式如下:enum枚举名{枚举表},(2)中常成员函数的定义格式中const的位置不能随便改动,因为const关键字是修饰其右侧文字的,(3)中调用基类函数E的方法Base::E()中使用了作用域符。
转载请注明原文地址:https://kaotiyun.com/show/VOID777K
0

最新回复(0)