c++函数后面跟override
时间: 2023-09-23 20:03:51 浏览: 60
在 C++ 中,override 是一个关键字,用于表示派生类中的虚函数重写了基类中的虚函数。如果派生类中的函数没有正确地重写基类中的虚函数,编译器会发出警告或错误,使用 override 关键字可以帮助程序员更好地管理虚函数的重写。例如:
```
class Base {
public:
virtual void foo() {}
};
class Derived : public Base {
public:
void foo() override {}
};
```
在上面的代码中,Derived 类中的 foo 函数使用 override 关键字标记,表示它重写了 Base 类中的虚函数 foo。如果 Derived 类中的 foo 函数不是虚函数或者没有正确地重写 Base 类中的虚函数 foo,编译器会发出错误提示。
相关问题
C++中函数后面加override是什么意思
在C++11标准中,override是一种符号常量,用于显式地指示一个虚函数(virtual function)覆盖了基类中的虚函数。如果派生类中定义的虚函数没有正确地覆盖基类中的虚函数,编译器会给出一个警告或者错误提示,而加上override可以让编译器检查到这种问题。
override的语法格式如下:
```
virtual function_return_type function_name(parameters) override;
```
其中,function_return_type是虚函数的返回类型,function_name是虚函数的名称,parameters是虚函数的参数列表。
例如,假设我们有一个基类Animal和一个派生类Cat,其中Animal定义了一个虚函数makeSound(),Cat需要覆盖这个虚函数,可以这样写:
```
class Animal {
public:
virtual void makeSound() {
cout << "The animal makes a sound." << endl;
}
};
class Cat : public Animal {
public:
void makeSound() override {
cout << "The cat meows." << endl;
}
};
```
在Cat中,我们用override修饰了makeSound()函数,这样就可以检查是否正确地覆盖了Animal中的makeSound()函数。
需要注意的是,加上override并不能改变虚函数的访问权限,比如如果基类中的虚函数是protected或private的,派生类中的覆盖函数也必须是protected或private的。
c++中函数名后加上override
在 C++11 标准中,可以在一个函数声明的末尾加上 `override` 关键字,表示该函数是一个虚函数的重写,用于增强代码的可读性和可维护性。
例如,假设有一个基类 `Base`,其中有一个虚函数 `virtual void func();`,派生类 `Derived` 继承自 `Base`,并重写了 `func` 函数:
```c++
class Base {
public:
virtual void func();
};
class Derived : public Base {
public:
void func() override;
};
```
在 `Derived` 中的 `func` 函数后面加上 `override` 关键字,可以确保该函数确实是基类中虚函数的重写,如果不是,则会在编译时产生错误。这样可以避免由于函数签名等错误导致的难以调试的问题,同时也提高了代码的可读性和可维护性。