使用VC6打开考生文件夹下的工程test39_3。此工程包含一个test39_3.cpp,其中定义了类ARRAY和其派生类 STUDENT,其中类ARRAY是一个多态数组,该数组可以存放学校中的各类人员,如学生等,但它们的定义并不完整。请按要求完成下列操作

admin2010-02-08  45

问题 使用VC6打开考生文件夹下的工程test39_3。此工程包含一个test39_3.cpp,其中定义了类ARRAY和其派生类 STUDENT,其中类ARRAY是一个多态数组,该数组可以存放学校中的各类人员,如学生等,但它们的定义并不完整。请按要求完成下列操作,将程序补充完整。
   (1)定义类ARRAY的三个公有成员纯虚函数add(int a)、del(int d)和show(int s),它们的返回值类型都是void型的。请在注释“//**1**”之后添加适当的语句。
   (2)添加派生类STUDENT的保护数据成员float型的二维数组table,使其有row行和s_col列,请在注释“//**2**”。之后添加适当的语句。
   (3)完成派生类STUDENT的成员函数del(int s)的定义,实现把二维数组第s行删除的功能,即把该行清零,请在注释“//**3**”之后添加适当的语句。
   (4)完成派生类STUDENT的成员函数show(int s)的定义,使其以格式“"跳格table[行号][列号]is_换行”依次输出s行的各个元素,请在注释“//**4**”之后添加适当的语句。
   源程序文件test39_3.cpp清单如下:
       #include <iostream.h>
       #include <stdlib.h>
       const int row = 100;
       const int s_col = 3;
       class ARRAY
       {
       public:
         // ** 1 **
       }
       class STUDENT:public ARRAY
       {
       public:
         virtual void add(int s)
         {
             cout<<"\tInput data of STUDENT."<<endl;
             cout<<"\tFirst:";
             cin>>table[s] [0];
             cout<<"\tSecond:";
             cin>>table[s] [1];
             cout<<"\tThird:";
             cin>>table[s] [2];
         }
         virtual void del(int s);
         virtual void show(int s);
        protected:
         int i;
       // ** 2 **
       };
       void STUDENT::del(int s)
       {
         // ** 3 **
       }
       void STUDENT::show(int s)
       {
         cout<<endl;
         for(i=0;i<=s_col-1;i++)
         {
         // ** 4 **
         }
       }
       int main()
       {
         STUDENT st;
         ARRAY* ap;
         ap=&st;
         ap->add(3);
         ap->show(3);
         ap->del(3);
         ap->show(3);
         return 0;
         }

选项

答案(1) virtual void add(int a)=0; (2) float table[row] [s_co1]; (3) for(i=0;i<=s__co1-1;i++) table[s][i]=0; (4) cout<<"\ttable["<<s<<"]["<<i<<"]is"<<table[s][i]<<endl;

解析 主要考查考生对于带纯虚函数类的定义及其派生类使用的掌握,其中(1)中virtual关键字是定义虚函数必不可少的,而定义纯虚函数应该在陔函数的后面加上“=0”,纯虚函数是在该类中只有声明,没有具体定义的特殊函数,是为了方便其派生类进行扩展而定义的“根”,派生类可以根据不同的需要进行定义,达到了数据封装的目的,(3)中二维数组的一行相当于一个一维数组,对其进行操作使用一个for循环即可,(4)中注意连续输出时字符流的使用。
转载请注明原文地址:https://jikaoti.com/ti/fFkiFFFM
0

最新回复(0)