【问题标题】:When would I need a Virtual Function?我什么时候需要虚拟功能?
【发布时间】:2016-03-16 22:58:36
【问题描述】:

我了解虚函数是可以在继承该函数的类中重新定义的函数。

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

谢谢!

【问题讨论】:

    标签: function virtual


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      假设你有一个多边形类(在 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 函数是没有意义的,因为在这个级别你不知道多边形是什么。虚函数的存在强制所有继承者实现他们自己的函数版本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-20
        • 1970-01-01
        • 2010-09-21
        • 2018-02-25
        • 1970-01-01
        • 2021-04-28
        • 2012-09-16
        相关资源
        最近更新 更多