[说明] ①为类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对齐,以免出错。