override
和overwrite
之间有什么区别?我听说它们可互换使用,但我怀疑这是不正确的。
答案 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
已被引入,因为有时程序员不知道他是否重写,或者他是否正在创建具有不同签名的新虚拟方法。
使用该关键字,您可能会收到错误或覆盖虚拟方法。