在下述代码中,基类A定义了两个纯虚函数foo()和bar(),需要在派生类中实现这些函数。派生类B和派生类C通过使用关键字override来重写基类A中的虚函数。
请注意,在基类A中至少有一个纯虚函数时,该基类就成为了抽象类,无法实例化。因此,派生类B和派生类C必须实现基类A中的所有纯虚函数才能被实例化。
// 基类A
class A
{
public:
virtual void foo() = 0; // 纯虚函数,需要在派生类中实现
virtual void bar() = 0;
};
// 派生类B
class B : public A
{
public:
void foo() override
{
// 实现基类A中的虚函数foo()
}
void bar() override
{
// 实现基类A中的虚函数bar()
}
};
// 派生类C
class C : public A
{
public:
void foo() override
{
// 实现基类A中的虚函数foo()
}
void bar() override
{
// 实现基类A中的虚函数bar()
}
};