virtual是加在基类中还是派生类中
时间: 2024-04-16 13:28:58 浏览: 96
详谈C++中虚基类在派生类中的内存布局
在C++中,虚函数的关键字virtual应该加在基类中的函数声明上。通过在基类中声明一个虚函数,可以使得该函数成为虚函数,并允许派生类对其进行重写(覆盖)。
当在基类中使用virtual关键字声明一个成员函数时,派生类可以选择是否对该函数进行重写。派生类中的重写函数也可以使用virtual关键字,但这是可选的,因为在派生类中的虚函数默认也是虚函数。
示例:
```cpp
class Base {
public:
virtual void foo() {
// 基类中的虚函数
}
};
class Derived : public Base {
public:
void foo() override {
// 派生类中对基类虚函数的重写
}
};
```
需要注意的是,虚函数只能在类的成员函数中使用,并且只能在类的层次结构中进行继承和重写。对于非成员函数、静态成员函数和构造函数等,不能使用virtual关键字。
阅读全文