示例
#include <iostream>
class Base {
public:
virtual void print() {
std::cout << "Base" << std::endl;
}
};
class Derived : public Base {
public:
void print() override {
std::cout << "Derived" << std::endl;
}
};
int main() {
Base* b = new Derived();
b->print(); // 输出 "Derived"
delete b;
return 0;
}
这个就是就是在new的时候,虽然接收的是基类,但是new出来的函数确实派生的,这个override也不是一定要加的,加上的理由就是要求派生类不允许去重载基类的这个函数,所以要是你要求派生类不能重载基类的函数,那就加上这个override,这样他会提示你有问题的,例如
当然了,上面是虚函数,还一个就是纯虚函数
class Base {
public:
virtual void print() = 0;
};
这玩意就是在基类里只是留一个函数名,却没有实现,实现实在派生类里面去实现的,这个实现可不是选择性的实现啊,是必须需要去实现的,这个的好处就是保证派生类不会出现没有这个函数的问题