使用VC6打开考生文件夹下的工程test36_3。此工程包含一个test36_3.cpp,其中定义了类CRectangle,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。 (1)定义类CRectangle的数据成员width和heigh

admin2010-02-08  29

问题 使用VC6打开考生文件夹下的工程test36_3。此工程包含一个test36_3.cpp,其中定义了类CRectangle,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。
   (1)定义类CRectangle的数据成员width和height,它们都是int型的数据。请在注释“//**1**”之后添加适当的语句。
   (2)添加类CRectangle的友元函数duplicate()的声明,其返回值类型和参数类型均为Crectangle的,请在注释“//**2**”之后添加适当的语句。
   (3)完成类Crectangle的成员函数set_values的定义,把传入的参数a和b分别赋值为数据成员width和height,请在注释“//**3**”之后添加适当的语句。
   (4)完成派生类Crectangle的友元函数duplicate的定义,把函数中的临时对象rectres的值返回主函数,请在注释“//** 4**”之后添加适当的语句。
   注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
   源程序文件test36_3.cpp清单如下:
       #include <iostream.h>
       class CRectangle
       {
        // ** 1 **
       public:
        void set_values  (int,  int);
        int area (void)  {return (width * height);}
        // ** 2 **
       };
       void CRectangle::set_values  (int a,  int b)
       {
        // ** 3 **
       }
       CRectangle duplicate (CRectangle rectparam)
       {
        CRectangle rectres;
        rectres.width = rectparam.width*2;
        rectres.height = rectparam.height*2;
        // ** 4 **
       }
       void main ( )
       {
        CRectangle rect, rectb;
        rect.set_values  (2,3);
        rectb - duplicate (rect);
        cout << rectb.area()<<end1;
       }

选项

答案(1) int width,height; (2) friend CRectangle duplicate(CRectangle); (3) width=a; height=b; (4) return(rectres);

解析 主要考查考生对于类的定义和友元函数的掌握,其中(2)中friend是定义友元的关键字,注意声明之后的分号不能缺少(4)中从子函数中返回应该使用关键字return,只要符合返回类型的要求就可以直接使用return返回。
转载请注明原文地址:https://kaotiyun.com/show/MKID777K
0

最新回复(0)