定义一个图形类,其中有保护类型的成员数据:高度和宽度,一个公有的构造函数。由该图形类建立两个派生类:矩形类和等腰三角形类。在每个派生类中都包含一个函数Area(),分别用来计算矩形和等腰三角形的面积。使用C++语言
时间: 2024-12-17 17:22:43 浏览: 16
在C++中,首先我们定义一个名为`BaseShape`的图形基类,它包含了两个保护类型的成员变量`height`和`width`,以及一个公共的构造函数:
```cpp
class BaseShape {
protected:
double height;
double width;
public:
// 公共构造函数
BaseShape(double h, double w) : height(h), width(w) {}
};
```
接着,我们会定义两个派生类:`Rectangle`和`EquilateralTriangle`。每个派生类都会覆盖`BaseShape`的`Area()`函数,用于计算各自的面积。
对于`Rectangle`类:
```cpp
class Rectangle : public BaseShape {
public:
// 计算矩形面积
double Area() const {
return height * width;
}
};
```
对于`EquilateralTriangle`类,我们需要知道等腰三角形的高度与边长的关系,这里假设边长是`base`:
```cpp
class EquilateralTriangle : public BaseShape {
private:
double base; // 等腰三角形的底边
public:
// 构造函数,接收边长
EquilateralTriangle(double b, double h) : BaseShape(h, (sqrt(3) / 2) * b), base(b) {}
// 计算等腰三角形面积
double Area() const {
return 0.5 * base * height;
}
};
```
现在你可以创建这些形状的实例并计算它们的面积了。例如:
```cpp
int main() {
Rectangle rect(4, 6);
cout << "Rectangle area: " << rect.Area() << endl;
EquilateralTriangle tri(5, 8);
cout << "Equilateral Triangle area: " << tri.Area() << endl;
return 0;
}
```
阅读全文