[说明]
①为类Circle增加一个构造函数,该函数有一个参数,并在构造时将该参数值赋给成员 radius。将该函数实现为一个非内联函数,并且使用参数列表的方式将类成员赋值。
②为类Circle增加一个成员函数print(),使得可以输出有关圆的信息,比如下列程序
Circle c;
c. SetRadius(5);
c. Print();
将输出:The circle has radius of 5!
③完成友元函数void CompareR(Circle *c1,Circle *c2)的定义,在屏幕中输出c1与c2比较radius大小结果,要求使用if - else结构完成。
输出结果如下:
The circle has radus of 5 !
The circle has radius of 10 !
cl <c2
源程序文件test7_3, cpp 清单如下:
#include < iostream, h >
class Circle
public:
Circle( ) :radius(5)
(1)
void SetRadius(int r) radius = r;
int GetRadius() return radius;
(2)
friend void CompareR(Circle * c1,Circle * c2);
private:
int radius;
;
void CompareR(Circle * c! ,Circle * c2)
(3)
cout << "c1 > c2" << endl;
else
if ( (c1 -> GetRadius( )) == (c2 -> GetRadius( )))
tout < <"c1=c2’ < < endl;
else
if ( (c1 -> GetRadius( )) < ( c2 -> GetRadius( )))
cout <<"c1<c2" <<endl;
void main( )
Circle c1
c1. SetRadius(5)
c1. Print( )
Circle c2(10);
c2. Print( )
CompareR(&c1 ,&c2);
参考答案:(1)Circle(int rad):radius(rad){}
(2)void Print(){cout< <"The circle has radius of" < < radius< <"!\n";}
(3)if((c1->GetRadius())>(c2-->GetRadius()))
解析: 本题考查成员函数的定义与实现,友元函数,if分支语句等知识点。友元函数的类体外的定义与一般函数一样,注意(3)中if- else的使用,else总是与其最近的那个if配对使用的,书写时最好使用缩进格式,将配对的if-else对齐,以免出错。