问题 问答题

使用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返回。

判断题
单项选择题 A1型题