使用VC6打开考生文件夹下的工程test42_3。此工程包含—个test42_3.cpp,其中定义了类Cpolygon、COutput和CTriangle,其中CTriangle类由Cpolygon和COutput类public派生,但三个类的定义并不完整。请按要求完成下列操作,将程序补充完整。
(1)定义类CPolygon的保护数据成员width和height,它们都是int型的数据。请在注释“//**1**”之后添加适当的语句。
(2)完成类CPolygon的成员函数set_values(int a,int b),使参数a和b分别赋值给保护数据成员width和height,请在注释“//**2**”之后添加适当的语句。
(3)完成类Coutput的成员函数output(int)的定义,将传入的参数为血型的i输出到屏幕并换行,请在注释“//**3**”之后添加适当的语句。
(4)完成派生类CTriangle的声明,它由Cpolygon和COutput类public派生,请在注释“//**4**”之后添加适当的语句。
源程序文件test42_3.cpp清单如下:
#include <iostream.h>
class CPolygon
protected:
// ** 1 **
public:
void set_values(int a, int b)
// ** 2 **
;
class COutput
public:
void output(int i);
;
void COutput::output(int i)
// ** 3 **
// ** 4 **
public:
int area (void)
return (width * height / 2);
int main ()
CTriangle trgl;
trgl.set_values (4,5);
trgl.output (trgl.area());
return 0;
参考答案:
(A)
int width, height;
(B)
width=a; height=b;
(C)
cout << i << endl;
(D)
class CTriangle:public CPolygon, public COutput
解析:
主要考查考生对于类的定义和派生类声明的掌握,其中(4)中对于多继承的声明按照如下的格式:关键字class派生类名:继承方式继承类名,继承方式继承类名,在多继承中,一定要注意防止程序的二义性,同时要善于利用基类中已经定义的方式,才能达到代码复用的作用。