阅读下列程序说明和C++代码,将应填入(n)处的字句写在对应栏内。 [说明] ①为类Circle增加一个构造函数,该函数有一个参数,并在构造时将该参数值赋给成员 radius。将该函数实现为一个非内联函数,并且使用参数列表的方式将类成员赋值。

admin2009-02-15  37

问题 阅读下列程序说明和C++代码,将应填入(n)处的字句写在对应栏内。
[说明]
   ①为类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对齐,以免出错。
转载请注明原文地址:https://jikaoti.com/ti/J1i7FFFM
0

相关试题推荐
最新回复(0)