用c++设计一个抽象类计算面积
时间: 2024-02-29 10:52:50 浏览: 75
好的,以下是用 C++ 设计一个抽象类计算面积的示例代码:
```c++
#include <iostream>
using namespace std;
// 抽象类 Shape
class Shape {
public:
// 纯虚函数,计算面积
virtual float calcArea() = 0;
};
// 派生类 Rectangle
class Rectangle: public Shape {
private:
float width;
float height;
public:
Rectangle(float w, float h) {
width = w;
height = h;
}
// 实现 Shape 中的纯虚函数
float calcArea() {
return width * height;
}
};
// 派生类 Circle
class Circle: public Shape {
private:
float radius;
public:
Circle(float r) {
radius = r;
}
// 实现 Shape 中的纯虚函数
float calcArea() {
return 3.14 * radius * radius;
}
};
int main() {
// 创建对象
Shape *shape;
Rectangle rec(3, 4);
Circle cir(5);
// 调用函数
shape = &rec;
cout << "矩形的面积:" << shape->calcArea() << endl;
shape = ○
cout << "圆形的面积:" << shape->calcArea() << endl;
return 0;
}
```
在这个示例代码中,我们首先定义了一个抽象类 Shape,其中有一个纯虚函数 calcArea(),这个函数用于计算图形的面积。然后我们定义了两个派生类 Rectangle 和 Circle,它们分别实现了 calcArea() 函数。最后在 main() 函数中,我们创建了 Shape 类型的指针 shape,分别指向 Rectangle 和 Circle 对象,并调用 calcArea() 函数计算面积。
需要注意的是,抽象类是不能被实例化的,只有通过派生类来实现它的纯虚函数才能被实例化。同时,派生类在实现纯虚函数时,必须使用 virtual 关键字来声明。
阅读全文