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