阅读以下说明和C++程序,将应填入(n)处的语句写在的对应栏内。 【说明】 以下程序的功能是计算三角形、矩形和正方形的面积并输出。 程序由4个类组成:类Triangle、Rectangle和Square分别表示三角形、矩形和正方形;抽象类

admin2009-02-15  39

问题 阅读以下说明和C++程序,将应填入(n)处的语句写在的对应栏内。
   【说明】
   以下程序的功能是计算三角形、矩形和正方形的面积并输出。
   程序由4个类组成:类Triangle、Rectangle和Square分别表示三角形、矩形和正方形;抽象类Figure提供了一个纯虚拟函数getArea(),作为计算上述3种图形面积的通用接口。
  【C++程序】
   #include<iostream.h>
   #include<math.h>
   class Figure {
       public:
       virtual double getArea()=0;           //纯虚拟函数
   };
   class Rectangle:(1){
       protected:
       double height;
       double width;
       public:
       Rectangle() {};
           Rectangle(double height,double width) {
               this->height=height;
               this->width=width;
           }
       double getArea() {
           return  (2);
       }
   };
   class Square:(3){
       public:
       Square(double width){
         (4);
       }
   };
   class Triangle:(5){
       double la;
       double lb;
       double lc;
       Public:
       Triangle(double la, double lb, double lc) {
           This->la=la; this->lb=lb; this->lc=lc;
       }
       double getArea()  {
           double s = (la+lb+±c)/2.0;
           return sqrt(s,(s-la)*(s-lb)*(s-Ic));
       }
   };
   void main() {
       Figure*figures[3]={
           new Triangle(2,3,3), new Rectangle(5,8), new SqUare(5));
           for(int i=0;i<3;i++){
               cout<<"figures["<<i<<"]area="<<(figures)->getArea()<<endl;
           }
   }     

选项

答案(1)public Figure (2) height * width (3) public Rectangle (4)this->height=this->width=width (5)public Figure

解析 类Triangle、Rectangle和Square分别表示三角形、矩形和正方形,它们都需要求各自的面积,而抽象类Figure提供了一个纯虚拟函数getArea(),所以类Rectangle以类Figure为基类,公有继承,所以(1)空应填入“public Figure”。(2)空处为类Rectangle中求面积函数的返回值,所以根据长方形面积公式应填入“height*width”。
   类Square表示正方形,它是特殊的长方形,所以可以从代表长方形的类Rectangle公有继承它的成员,所以(3)空应填入“public Rectangle”。(4)空处为类Square的构造函数的函数休,显然是长等于宽,所以应填入"this->height=this->width=width”。
   最后类Triangle同样从虚基类公有继承,所以(5)空应填入“public Figure”。
转载请注明原文地址:https://kaotiyun.com/show/lEjZ777K
0

最新回复(0)