覆盖vs覆盖

时间:2012-01-22 16:53:42

标签: c++

  

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

class A
{
    virtual f(int) {}
};

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

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

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

关键字override已被引入,因为有时程序员不知道他是否重写,或者他是否正在创建具有不同签名的新虚拟方法。 使用该关键字,您可能会收到错误或覆盖虚拟方法。