C++ override从字面意思上,是覆盖的意思,实际上在C++中它是覆盖了一个方法并且对其重写,从而达到不同的作用。在我们C++编程过程中,最熟悉的就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。还有一个典型应用就是在继承中也可能会在子类覆盖父类的方法。
公有继承包含两部分:一是“接口”(interface),二是 "实现" (implementation)。
例如Person类的几种成员函数的继承方式:
class Person{
public:
virtual void Eat() const = 0; // 1) 纯虚函数
virtual void Say(const std::string& msg); // 2) 普通虚函数
int Name() const; // 3) 非虚函数
};
class Student: public Person{ ... };
class Teahcer: public Person{ ... };
1.纯虚函数
纯虚函数,继承的是基类成员函数的接口,必须在派生类中重写该函数的实现:

本文详细介绍了C++中的`override`关键字,讨论了如何在继承中正确覆盖虚函数。通过例子展示了不使用`override`可能导致的问题,并强调了覆盖方法时的标志、返回值、异常和访问权限必须匹配的重要性。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



