问答题 【说明】
以下C++程序的功能是计算三角形、矩形和正方形的面积并输出。程序由4个类组成:类Triangle、Rectangle和Square分别表示三角形、矩形和正方形;抽象类Figure提供了一个纯虚拟函数getArea(),作为计算上述3种图形面积的通用接口。
#include<iostream.b>
#include<math.h>
class Figure
public:
virtual double getArea0=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; this->lc;

double getArea()
double s=(la+lb+lc)/2.0;
return sqrt(s*(s-l
  • a)**(s-l
  • b)*(s-l
  • c));

    ;
    viod 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[i])->getarea()<<endl;



【正确答案】[解析]
(1)public Figure
本处由于Rectangle是派生类,需要公有继承Figure。
(2)height*width或width*height或this->height*this->width或this->width*this->height
本处是计算矩形的面积。
(3)public Rectangle
本处由于Square是派生类,需要公有继承Rectangle。
(4)this->height=this->width=width或height=this->width=width
本处是正方形的构造函数,是给继承的Rectangle赋初值,由于正方形长等于宽,因此应该填入:this->height=this->width=width或height=this->width=width。
(5)public Figure
本处由于Triangle是派生类,需要公有继承Figure,因此应该填入:public Figure。
【答案解析】