这基本上是一个最佳实践问题,也是一个关于预期用途的问题override
:
struct A
{
virtual void func();
};
struct B : public A
{
virtual void func() override;
};
在上述情况下,使用override
. 它告诉用户B
它func
覆盖了一个虚函数A
(只能通过 C++11 之前的注释传达的信息)。但是当用户不应该认为这A
是一个基类时怎么办......比如 ifA
是private
继承的:
struct B : private A
{
virtual void func() override;
};
在这种情况下,我告诉用户B
他们不应该知道存在的内部实现细节。如果 的目的override
是在作者B
实际上没有覆盖任何内容的情况下给他一个错误,那很好;但是如果目的是向用户传达更多的信息,我是不是应该不写override
这种情况?