【说明】 以下程序的功能是计算三角形、矩形和正方形的面积并输出。 程序由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[i])->getArea()<<endl; } }
参考答案: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”。