C++ 编写一个表示矩形的类 Rect,包含两个私有成员 w,h 分别表示举行的宽和高。 编写合适的构造函数、计算面积的函数以及访问和修改成员变量的函数。 从 Rect 派生出一个表示正方形的类 Square,编写合适的构造函数、改写 (override)修改成员变量的函数。注意:正方形的宽和高相等
时间: 2024-03-24 15:41:19 浏览: 90
Rect 类的实现:
```cpp
class Rect {
private:
double w;
double h;
public:
Rect(double _w, double _h): w(_w), h(_h) {}
double get_area() const { return w * h; }
double get_width() const { return w; }
double get_height() const { return h; }
void set_width(double _w) { w = _w; }
void set_height(double _h) { h = _h; }
};
```
Square 类的实现:
```cpp
class Square : public Rect {
public:
Square(double side) : Rect(side, side) {}
void set_width(double side) override {
Rect::set_width(side);
Rect::set_height(side);
}
void set_height(double side) override {
Rect::set_width(side);
Rect::set_height(side);
}
};
```
在 Square 类中,我们继承了 Rect 类的所有成员变量和方法,并重新定义了 set_width 和 set_height 函数以保证正方形的宽和高始终相等。在这两个函数中,我们调用了父类的同名函数并传入 side,来同时修改宽和高。由于这两个函数被重写了,我们需要使用 override 关键字来表明这是对父类函数的改写。
阅读全文