用c++写一个可以计算圆形,长方形,正方形面积的代码
时间: 2024-11-20 16:33:57 浏览: 44
在 C++ 中,我们可以创建一个基类 `Shape` 和两个派生类 `Circle`, `Rectangle`, 和 `Square` 来计算不同形状的面积。每个派生类都会覆盖基类中的 `calculateArea()` 方法,以便提供各自特定的计算逻辑。以下是简单的示例:
```cpp
#include <iostream>
// 基类 Shape
class Shape {
protected:
double side; // 长方形和正方形共享的边长属性
double radius; // 圆形的半径
public:
Shape(double r = 0) : radius(r) {}
virtual ~Shape() {}
// 计算面积的纯虚函数
virtual double calculateArea() const = 0;
};
// 派生类 Circle
class Circle : public Shape {
private:
public:
Circle(double r) : Shape(r) {}
// 重写父类方法,计算圆的面积
double calculateArea() const override {
return M_PI * radius * radius;
}
};
// 派生类 Rectangle
class Rectangle : public Shape {
private:
public:
Rectangle(double s) : side(s) {}
// 重写父类方法,计算矩形的面积
double calculateArea() const override {
return side * side;
}
};
// 派生类 Square(特殊的矩形)
class Square : public Shape {
private:
public:
Square(double s) : side(s), Shape(s) {} // 在构造函数中设置radius
// 重写父类方法,计算正方形的面积
double calculateArea() const override {
return side * side;
}
};
int main() {
Circle circle(5);
std::cout << "Circle area: " << circle.calculateArea() << std::endl;
Rectangle rectangle(4);
std::cout << "Rectangle area: " << rectangle.calculateArea() << std::endl;
Square square(3);
std::cout << "Square area: " << square.calculateArea() << std::endl;
return 0;
}
```
阅读全文