【发布时间】:2011-01-15 13:41:39
【问题描述】:
我最近在派生类中看到了代码,其中程序员将virtual 放在重写的函数前面。这很常见吗?我觉得这很奇怪,有点让我措手不及。
编辑:我不是在问 virtual 做什么,我是在问为什么有人会将 virtual 放在已经在其基类中覆盖虚函数的派生类中。
前:
class B {
public:
virtual void foo();
....
};
class D : public B {
public:
virtual void foo(); // could have just put void foo();
...
};
【问题讨论】:
-
我也经常这样做,只是为了记录我的代码。
-
这是我认为 C# 更好的地方,强制派生类使用
override关键字。 -
这是一个完美的问题,它回答了我关于虚拟工作原理的许多疑问。谢谢@Person
-
这些答案已经过时了:从 C++11 开始,有一个
overridekeyword。 在未来的代码中,请使用这个关键字来标记覆盖虚函数的函数在基类中。