使虚拟实现也虚拟化?

问题描述

| 在C ++中实现纯虚拟功能时,是否有最佳实践指南指出该实现也应该虚拟化?理由是什么?
class Interface
{
  public:
    virtual void foobar() = 0;
};

class Concrete
    : public Interface
{
  public:
    virtual void foobar();
};
    

解决方法

        不要紧。
Concrete
中的
void foobar()
virtual
,无论您是否这样声明,它都将覆盖
Interface
中的
void foobar()
。     ,        尽管
virtual
关键字是否存在于派生类中都没有关系,但我发现始终包含它是一种节省时间的自我记录练习,因此任何使用您代码的人都可以从现在起两年后,我们可以立即看到班上除了眼前的东西之外,还有更多的东西。