类继承

#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类。它有两个私有成员变量lengthwidth,分别表示矩形的长和宽。
  • 构造函数接受四个参数,前两个参数用于初始化基类Shape的坐标点,后两个参数用于初始化矩形的长和宽。
  • GetArea函数用于计算矩形的面积,通过返回length乘以width的值来实现。
  • Circle类也公有继承自Shape类。它有一个私有成员变量radius,表示圆的半径。
  • 构造函数接受三个参数,前两个参数用于初始化基类Shape的坐标点,第三个参数用于初始化圆的半径。
  • GetArea函数用于计算圆的面积,根据圆的面积公式π * r * r(这里π取 3.14)计算并返回结果。
全部评论

相关推荐

评论
1
收藏
分享
牛客网
牛客企业服务