【问题标题】:Override vs Overwrite [duplicate]覆盖与覆盖[重复]
【发布时间】:2012-02-16 06:42:20
【问题描述】:

可能重复:
C++ Overriding… overwriting?

overrideoverwrite 有什么区别?我听说它们可以互换使用,但我怀疑这是不正确的。

【问题讨论】:

  • 您的意思是“覆盖与重载”吗?
  • 覆盖不是一个常见的 C++ 术语。
  • @VaughnCato,好吧,你也可以在 c++ 中处理文件 ;-)
  • @Dave:我想不出在 C++ 中在技术意义上使用“覆盖”的情况(除了覆盖某些数据的标准英语意义)。
  • @JoachimIsaksson 同意,傻瓜,请关闭。

标签: c++


【解决方案1】:

您只能覆盖已写入的内容和写入位置,而您可以覆盖其他地方的内容(例如,您可以覆盖派生类中基类的成员)。

【讨论】:

    【解决方案2】:

    override 是用于覆盖基本虚方法的 C++11 关键字:

    class A
    {
        virtual f(int) {}
    };
    
    class B
    {
        virtual f(int) override {} // override A::f(int)
    };
    

    这可以让您确保A::F(int) 被覆盖,这意味着您不会创建新的虚函数。 当然,如果函数签名不同,这段代码将无法编译。

    overwrite 不是 C++ 关键字,它基本上意味着用新的覆盖某些文件或文本。

    之所以引入关键字override,是因为有时程序员不知道他是否正在重写,或者他是否正在创建具有不同签名的新虚拟方法。 使用该关键字你会得到一个错误或覆盖虚拟方法。

    【讨论】:

    • 如果不是因为答案中的拼写错误数量,我会 +1...
    猜你喜欢
    • 2016-12-19
    • 2011-05-13
    • 2020-05-23
    • 2010-10-24
    • 2011-06-11
    • 2012-01-28
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多