问答题
试题六(15 分,每空3 分)
阅读以下说明和C++程序,将应填入(n) 处的字句写在答题纸的对应栏内。
【说明】
以下程序的功能是计算三角形、矩形和正方形的面积并输出。
程序由4 个类组成:类Triangle、Rectangle 和Square 分别表示三角形、矩形和正方形;抽象类Figure 提供了一个纯虚拟函数getArea(),作为计算上述三种图形面积的通用接口。
【C++程序】
#include
#include
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+lc)/2.0;
return sqrt(s*(s-la)*(s-lb)*(s-lc));
}
};
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;
}
}
【参考答案】
(1)public Figure(2)height*width(3)public Rectangle(4)height=......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)