问题 问答题

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

答案

参考答案:

解析:(1) int width, height; (2) width=a; height=b; (3) cout << i << endl; (4) class CTriangle:public CPolygon, public COutput 主要考查考生对于类的定义和派生类声明的掌握,其中(4)中对于多继承的声明按照如下的格式:关键字class派生类名:继承方式继承类名,继承方式继承类名,在多继承中,一定要注意防止程序的二义性,同时要善于利用基类中已经定义的方式,才能达到代码复用的作用。

填空题
问答题