override,c++
时间: 2024-11-03 11:16:45 浏览: 7
C++ override关键字使用详解
`override` 是C++11引入的关键字,用于明确标记派生类中重写了基类的虚函数。当你在派生类的方法声明中使用 `override`,编译器会在编译时检查这个方法是否与基类声明的虚函数具有相同签名(包括返回类型、参数列表和访问修饰符)。
**示例**:
```cpp
// 基类 Base
class Base {
public:
virtual void fun1() const; // 虚函数声明
virtual void fun2(int x); // 虚函数声明
void fun3() &; // 不是虚函数,不会被 override 检查
void fun4() const;
};
// 派生类 Derived
class Derived : public Base {
public:
// 使用 override 显示声明需要重写的虚函数
void fun1() const override; // 重写并确认 fun1 应该是一个const函数
void fun2(int x) override; // 重写并确认 fun2 接受一个int参数
// 这里 fun3 的 override 会引发编译错误,因为 Base 中不是虚函数
void fun3() & override; // 错误:fun3 不是基类的虚函数
// fun4 没有被 override,因为 Base 中未声明它为virtual
void fun4() const; // 可能或不可能重写,取决于Base的实现
};
```
阅读全文