c++面向对象程序设计的多态性举例
时间: 2024-10-12 16:03:51 浏览: 30
C++面向对象程序设计第05章.ppt
在C++中,面向对象的多态性通常通过虚函数(Virtual Functions)实现。例如,考虑一个“Shape”类,它有各种形状如“Circle”,“Square”和“Rectangle”。每个形状都有一个计算面积的方法`getArea()`:
```cpp
class Shape {
public:
virtual double getArea() const = 0; // 虚函数声明
};
class Circle : public Shape {
private:
double radius;
public:
Circle(double r) : radius(r) {}
double getArea() const override { return M_PI * radius * radius; }
};
class Square : public Shape {
private:
double side;
public:
Square(double s) : side(s) {}
double getArea() const override { return side * side; }
};
class Rectangle : public Shape {
private:
double width, height;
public:
Rectangle(double w, double h) : width(w), height(h) {}
double getArea() const override { return width * height; }
};
```
在这个例子中,`getArea()`是一个虚函数,当通过基类`Shape`的指针或引用调用时,实际会调用相应派生类的实际实现。这展示了动态绑定(Dynamic Binding),即运行时确定调用哪个版本的函数,这就是多态性的体现。
阅读全文