Function 我什么时候需要虚拟函数?

Function 我什么时候需要虚拟函数?,function,virtual,Function,Virtual,我知道虚函数是可以在继承该函数的类中重新定义的函数 然而,我不明白为什么我需要一个虚拟函数。有人能给我解释一下或者给我展示一些我需要虚拟函数的例子吗 谢谢 有很好的解释和很好的例子 有很好的解释和很好的例子 任何函数都可以在类的继承器中重新定义。虚拟函数的关键是它们应该被重写 假设您有一个多边形类(在C++中): 现在在Polygon类中定义Polygon.area函数是没有意义的,因为在这个级别上,您不知道多边形是什么。虚拟函数的存在强制所有继承者实现自己版本的函数。任何函数都可以在类的继承者

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

然而,我不明白为什么我需要一个虚拟函数。有人能给我解释一下或者给我展示一些我需要虚拟函数的例子吗


谢谢

有很好的解释和很好的例子
有很好的解释和很好的例子
任何函数都可以在类的继承器中重新定义。虚拟函数的关键是它们应该被重写

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


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

任何函数都可以在类的继承者中重新定义。虚拟函数的关键是它们应该被重写

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

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

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