虚函数
在父类中将函数声明为虚函数,并提供默认的实现。
关键字
virtual:用于声明虚函数
override:在派生类中使用,用于标识子类中重写了父类中的虚函数。
注:使用overrride的好处是如果派生类中的函数名称或参数列表与基类中的虚函数不匹配,编译器会报错,从而避免由于函数签名不一致造成的潜在错误。
用处
子类可以重写父类的虚函数,实现特定功能。当然也可以不重写。
我们可以根据对象的实际类型来调用适当的函数,实现C++的多态。
用例
class Base {
public:
virtual void show() {
cout << "Base class" << endl;
}
};
class Derived : public Base {
public:
void show() override {
cout << "Derived class" << endl;
}
};
纯虚函数
在父类中将函数声明为纯虚函数,不提供默认的实现。
关键字
virtual和=0:用于声明纯虚函数。
override:在派生类中使用,用于标识子类中重写了父类中的虚函数。
用处
子类必须实现父类的声明纯虚函数。
因此通过在父类中声明纯虚函数,可以定义接口规范,用来要求子类必须实现这些函数。
用例
class Base {
public:
virtual void show() =0;
};
class Derived : public Base {
public:
void show() override {
cout << "Derived class" << endl;
}
};