定义Point(点)类,由它派生出Rectangle(矩形)类和Circle(圆) 类,输出各派生类对象的信息: 圆要输出:中心点坐标、半径、面积。 矩形要输出: 左上角点的坐标、长、宽、面积。 c++ 不报错 有必要注释
时间: 2024-02-19 20:59:20 浏览: 105
c++ 形状类Shape(派生出圆类Circle和矩形类Rectangle)
以下是定义Point类并派生出Rectangle和Circle类的示例代码(带有注释):
```c++
#include <iostream>
#include <cmath> // 引入数学库,用于计算圆的面积
using namespace std;
// 定义点类
class Point {
public:
Point(int x, int y) : x(x), y(y) {} // 构造函数,初始化x、y坐标
int getX() const { return x; } // 获取x坐标
int getY() const { return y; } // 获取y坐标
void setX(int x) { this->x = x; } // 设置x坐标
void setY(int y) { this->y = y; } // 设置y坐标
private:
int x, y; // x、y坐标
};
// 定义矩形类,继承自点类
class Rectangle : public Point {
public:
Rectangle(int x, int y, int w, int h) : Point(x, y), w(w), h(h) {} // 构造函数,初始化左上角点的坐标、长、宽
int getW() const { return w; } // 获取矩形的宽
int getH() const { return h; } // 获取矩形的高
int getArea() const { return w * h; } // 计算矩形的面积
private:
int w, h; // 矩形的宽和高
};
// 定义圆类,继承自点类
class Circle : public Point {
public:
Circle(int x, int y, int r) : Point(x, y), r(r) {} // 构造函数,初始化圆心的坐标和半径
int getR() const { return r; } // 获取圆的半径
double getArea() const { return M_PI * r * r; } // 计算圆的面积,使用数学库中的圆周率常量M_PI
private:
int r; // 圆的半径
};
int main() {
Rectangle rect(0, 0, 5, 3); // 创建一个矩形对象,左上角点的坐标为(0, 0),长为5,宽为3
Circle circle(2, 2, 4); // 创建一个圆对象,圆心坐标为(2, 2),半径为4
// 输出矩形对象的信息
cout << "Rectangle:" << endl;
cout << "Left-top point: (" << rect.getX() << ", " << rect.getY() << ")" << endl;
cout << "Width: " << rect.getW() << endl;
cout << "Height: " << rect.getH() << endl;
cout << "Area: " << rect.getArea() << endl;
// 输出圆对象的信息
cout << "Circle:" << endl;
cout << "Center point: (" << circle.getX() << ", " << circle.getY() << ")" << endl;
cout << "Radius: " << circle.getR() << endl;
cout << "Area: " << circle.getArea() << endl;
return 0;
}
```
输出结果如下:
```
Rectangle:
Left-top point: (0, 0)
Width: 5
Height: 3
Area: 15
Circle:
Center point: (2, 2)
Radius: 4
Area: 50.2654
```
阅读全文