伙计们,我知道这个问题非常基本,但我在少数出版物(网站、书籍)中遇到过不同风格的覆盖虚拟功能。我的意思是:如果我有基类:
class Base
{
public:
virtual void f() = 0;
};
在一些出版物中,我看到一些作者会说:
void f();
有些人仍然会在 void 之前重复 virtual 关键字。哪种覆盖形式的风格很好?谢谢您的回答。
伙计们,我知道这个问题非常基本,但我在少数出版物(网站、书籍)中遇到过不同风格的覆盖虚拟功能。我的意思是:如果我有基类:
class Base
{
public:
virtual void f() = 0;
};
在一些出版物中,我看到一些作者会说:
void f();
有些人仍然会在 void 之前重复 virtual 关键字。哪种覆盖形式的风格很好?谢谢您的回答。
这纯粹是口味问题。关于某些样式的自我文档价值与其他样式的非冗余性,可以来回提出一些弱论点。
没有必要将 virtual 关键字添加到您在子类中覆盖的方法,因为无法通过在子类声明中省略它来删除此限定符。
然而,重复使用 virtual 关键字是一种很好的做法,因为它记录了哪些派生函数在基类中是虚拟的。
'High Integrity C++ Coding Standard Manual'也建议这样做。
链接在C++ FAQ中。
我个人使用这两种样式:virtual
意味着该方法可以被覆盖。
所以我们有两种情况:
virtual
关键字Template Pattern
),那么不要使用virtual
关键字我想这是(ab?)使用关键字的另一种方式。