我什么时候需要虚函数?

时间:2016-03-16 22:58:37

标签: function virtual

我知道虚函数是一个可以在继承该函数的类中重新定义的函数。

然而,我不明白为什么我需要一个虚函数。有人可以解释我或向我展示我需要虚拟功能的情况吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

有很好的例子,有很好的解释 https://en.wikipedia.org/wiki/Virtual_function

答案 1 :(得分:0)

任何功能都可以在课程中重新定义。继承者。虚函数的关键是它们应该被覆盖。

假设您有一个多边形类(在C ++中):

class Polygon {
  protected:
    int width, height;
  public:
    void set_values (int a, int b)
      { width=a; height=b; }
    virtual int area ()
      { return 0; }
};

现在在多边形类中定义Polygon.area函数没有意义,因为在这个级别你不知道多边形是什么。虚函数的存在强制所有继承者实现自己的函数版本。