问答题 [说明] ①为类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) {} {{U}} (1) {{/U}} void SetRadius(int r) { radius = r; } int GetRadius() { return radius; } {{U}} (2) {{/U}} friend void CompareR(Circle * c1,Circle * c2); private: int radius; }; void CompareR(Circle * c! ,Circle * c2) { {{U}} (3) {{/U}} 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对齐,以免出错。