使用VC6打开考生文件夹下的工程test29_3。此工程包含一个test29_3.cpp,其中定义了二维坐标类Coordinate和三维坐标类ThreeDCoord,其中ThreeDCoord类由Coordinate类public派生,但两个类的定义并不完

admin2010-02-08  52

问题 使用VC6打开考生文件夹下的工程test29_3。此工程包含一个test29_3.cpp,其中定义了二维坐标类Coordinate和三维坐标类ThreeDCoord,其中ThreeDCoord类由Coordinate类public派生,但两个类的定义并不完整。请按要求完成下列操作,将程序补充完整。
   (1)定义类Coordinate的保护数据成员x和y,它们都是int型的数据,代表二维坐标的横纵坐标值。请在注释“//**1 **”之后添加适当的语句。
   (2)根据类Coordinate定义后的成员函数Display的实现,补充该函数在类Coordinate定义体内的声明,Display为二维坐标类的虚函数。请在注释“//**2**。”之后添加适当的语句。
   (3)完成二维坐标类Coordinate的构造函数,将参数a和b分别赋值给数据成员x和y。请在注释“//**3**”之后添加适当的语句。
   (4)根据ThreeDCoord类构造函数的声明,补充ThreeDCoord构造函数的实现,参数a和b通过调用基类的构造函数来初始化基类的数据成员x和y,c赋值给数据成员2。请在注释“//**4**”之后添加适当的语句。
输出结果如下;
[1,2]
[3,4,5]
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件tese9_3.cpp清单如下:
   #include<iostream.h>
   class Coordinate
   {protected:
   //** 1 **
   public:
     Coordinate(int a=0, int b=0);
    //** 2 **
   };
   Coordinate::Coordinate(int a, int b)
   {
     //** 3 **
   }
   void Coordinate::Display()  const
   {
     cout <<  ’[’ << x << ",  "<< y << ’]’ << end1;
   }
   class ThreeDCoord:public Coordinate
   {
     int z;
   public:
     ThreeDCoord(int a=0, int b=0, int c=0);
     virtual void Display()  const;
   };
   //** 4 **
   void ThreeDCoord::Display() const
   {
     cout << ’[’ << x << ",  "<< y << ",  "<< z << ’]’ << end1;
   }
   void main ( )
   {
     Coordinate c(1, 2);
     ThreeDCoord t(3, 4, 5);
     c.Display ();
     t.Display ();
   }

选项

答案(1) int x; int y; (2) virtual void Display()const; (3) x=a; y=b; (4) ThreeDCoord::ThreeDCoord(int a,int b,int c):Coordinate(a,b)

解析 本题主要考查考生对类数据成员的定义、构造函数、派生类及虚函数的理解,是C++类知识的一个综合考核。对虚函数的定义格式及继承类构造函数的定义格式请多加注意。
转载请注明原文地址:https://kaotiyun.com/show/J7ID777K
0

最新回复(0)