使虚拟的实现也虚拟?

发布于 2024-11-15 00:59:10 字数 218 浏览 2 评论 0原文

在 C++ 中实现纯虚函数时,是否有最佳实践指南表明实现也应该是虚拟的?理由是什么?

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

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

When implementing a pure virtual function in C++, is there a best-practices guideline that says the implementation should also be made virtual? What is the rationale?

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夏天碎花小短裙 2024-11-22 00:59:10

不要紧。

Concrete 中的 void foobar()virtual,无论您是否这样声明它,并且它会覆盖 void foobar() > 在界面中。

It does not matter.

void foobar() in Concrete is virtual regardless whether you declare it as such and it overrides the void foobar() in Interface.

笑梦风尘 2024-11-22 00:59:10

尽管派生类中是否存在 virtual 关键字并不重要,但我发现它是始终 包含它,以便两年后使用您的代码的任何人都可以立即看到该类的内容比立即看到的要多。

Although it doesn't matter if the virtual keyword is present in a derived class or not, I've found it to be an indispensable time-saving self-documenting practice to always include it, so that anyone working with your code a two years from now immediately can see that there is more to the class than what immediately meets the eye.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文