用c++编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle,二者都有计算对象面积的函数getArea(、计算对象周长的函数getPerim0
时间: 2024-02-12 22:03:57 浏览: 82
抽象类Shape的代码如下:
```c++
class Shape {
public:
virtual float getArea() = 0;
virtual float getPerim() = 0;
};
```
派生类Rectangle和Circle的代码如下:
```c++
class Rectangle : public Shape {
public:
Rectangle(float w, float h) : width(w), height(h) {}
float getArea() override { return width * height; }
float getPerim() override { return 2 * (width + height); }
private:
float width, height;
};
class Circle : public Shape {
public:
Circle(float r) : radius(r) {}
float getArea() override { return 3.14 * radius * radius; }
float getPerim() override { return 2 * 3.14 * radius; }
private:
float radius;
};
```
注意,在C++中,抽象类需要至少含有一个纯虚函数,即在函数声明后面加上`=0`。此外,在派生类中实现虚函数时需要使用关键字`override`。
阅读全文