c++中,用类和继承的方法完成图形的颜色和面积的计算,要求至少俩个图形
时间: 2024-09-28 18:04:59 浏览: 26
C++、类的继承应用示例
在 C++ 中,我们可以使用类和继承来创建一个图形基类以及它的派生类来处理颜色和面积计算。首先,我们定义一个名为 `Shape` 的基类,包含一些通用属性如颜色(`color`)和一个纯虚函数(`calculateArea()`),用于表示所有图形的基本行为:
```cpp
class Shape {
public:
virtual Color getColor() const = 0; // 纯虚函数,声明但不提供实现
virtual double calculateArea() const = 0; // 纯虚函数,声明但不提供实现
protected:
Color color; // 颜色属性
};
```
然后,我们可以创建两个派生类,比如 `Circle` 和 `Rectangle`,它们分别代表圆形和矩形,并实现各自特有的面积计算方法:
```cpp
class Circle : public Shape {
private:
double radius;
public:
Circle(Color color, double radius) : Shape(color), radius(radius) {}
Color getColor() const override { return color; }
double calculateArea() const override { return M_PI * radius * radius; } // 圆形面积公式
};
class Rectangle : public Shape {
private:
double width;
double height;
public:
Rectangle(Color color, double width, double height) : Shape(color), width(width), height(height) {}
Color getColor() const override { return color; }
double calculateArea() const override { return width * height; } // 矩形面积公式
};
```
现在,我们有了可以根据颜色操作并且可以计算各自面积的图形对象。例如,你可以这样使用它们:
```cpp
int main() {
Circle circle(Color::Red, 5);
Rectangle rectangle(Color::Blue, 4, 6);
std::cout << "Circle area: " << circle.calculateArea() << std::endl;
std::cout << "Rectangle area: " << rectangle.calculateArea() << std::endl;
return 0;
}
```
阅读全文