我知道虚函数是一个可以在继承该函数的类中重新定义的函数。
然而,我不明白为什么我需要一个虚函数。有人可以解释我或向我展示我需要虚拟功能的情况吗?
谢谢!
答案 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
函数没有意义,因为在这个级别你不知道多边形是什么。虚函数的存在强制所有继承者实现自己的函数版本。