定义一个点类,矩形类,长方体类,其中点类派生了矩形类,矩形类派生了长方体类要求每个类设计构造函数,点类中添加成员函数能够计算任意两点的距离,矩形类能够计算面积和周长,长方体类能够计算体积和表面积。
时间: 2024-11-18 10:14:20 浏览: 1
定义一个矩形类可算体积
在面向对象编程中,我们可以按照这样的结构定义这三个类:
1. **点类 (Point)**:
```cpp
class Point {
public:
// 构造函数,初始化点的位置坐标
Point(double x, double y) : x_(x), y_(y) {}
private:
double x_; // 点的横坐标
double y_; // 点的纵坐标
public:
// 计算两点之间的距离
double distance(const Point& other) const {
return std::sqrt(std::pow(x_ - other.x_, 2) + std::pow(y_ - other.y_, 2));
}
};
```
2. **矩形类 (Rectangle)**:
```cpp
class Rectangle : public Point { // 点类作为矩形的基础类
public:
// 构造函数,接受长和宽作为参数
Rectangle(double left, double top, double width, double height) : Point(left, top), width_(width), height_(height) {}
// 计算面积和周长
double area() const { return width_ * height_; }
double perimeter() const { return 2 * (width_ + height_); }
private:
double width_; // 矩形的宽度
double height_; // 矩形的高度
};
```
3. **长方体类 (Cube)**:
```cpp
class Cube : public Rectangle { // 矩形类作为长方体的基础类
public:
// 构造函数,接受边长作为参数
Cube(double side_length) : Rectangle(0, 0, side_length, side_length) { // 继承矩形的构造方法,设置长和宽相同
depth_ = side_length;
}
// 计算体积和表面积
double volume() const { return depth_ * width_ * height_; }
double surface_area() const { return 2 * (area() + perimeter()); }
private:
double depth_; // 长方体的深度(假设为正方形)
};
阅读全文