类继承
#include <iostream>
#include <iomanip>
using namespace std;
class Shape {
private:
double x, y;
public:
Shape(double x = 0, double y = 0) : x(x), y(y) {}
};
class Rectangle : public Shape {
private:
double length, width;
public:
Rectangle(double x, double y, double length, double width) : Shape(x, y), length(length), width(width) {}
double GetArea() { return length * width; }
};
class Circle : public Shape {
private:
double radius;
public:
Circle(double x, double y, double radius) : Shape(x, y), radius(radius) {}
double GetArea() { return 3.14 * radius * radius; }
};
class Square : public Rectangle {
public:
Square(double x, double y, double side) : Rectangle(x, y, side, side) {}
};
int main() {
double length, width, radius, side;
cin >> length >> width;
cin >> radius;
cin >> side;
Rectangle rectangle(0, 0, length, width);
Circle circle(0, 0, radius);
Square square(0, 0, side);
cout << rectangle.GetArea() << endl;
cout << circle.GetArea() << endl;
cout << square.GetArea() << endl;
return 0;
}
Rectangle
类公有继承自Shape
类。它有两个私有成员变量length
和width
,分别表示矩形的长和宽。- 构造函数接受四个参数,前两个参数用于初始化基类
Shape
的坐标点,后两个参数用于初始化矩形的长和宽。 GetArea
函数用于计算矩形的面积,通过返回length
乘以width
的值来实现。Circle
类也公有继承自Shape
类。它有一个私有成员变量radius
,表示圆的半径。- 构造函数接受三个参数,前两个参数用于初始化基类
Shape
的坐标点,第三个参数用于初始化圆的半径。 GetArea
函数用于计算圆的面积,根据圆的面积公式π * r * r
(这里π
取 3.14)计算并返回结果。