C++的多态性允许我们通过基类指针或引用来调用派生类的成员函数。处理继承关系时,多态性主要通过虚函数(virtual function)实现。以下是如何使用虚函数处理继承关系的简要说明:
- 在基类中声明虚函数:在基类中,我们可以使用关键字
virtual
声明一个成员函数为虚函数。这样,派生类中的同名函数将自动成为虚函数。
class Base { public: virtual void show() { cout << "Base class show()" << endl; } };
- 在派生类中重写虚函数:在派生类中,我们可以使用相同的函数名、返回类型和参数列表重写基类中的虚函数。这样,当我们通过基类指针或引用调用该函数时,将执行派生类中的实现。
class Derived : public Base { public: void show() override { cout << "Derived class show()" << endl; } };
- 使用基类指针或引用调用虚函数:通过基类指针或引用调用虚函数时,实际调用的函数取决于对象的实际类型。这就是多态性的体现。
int main() { Base *b = new Derived(); b->show(); // 输出 "Derived class show()" delete b; return 0; }
在这个例子中,我们创建了一个指向Derived
对象的Base
指针。当我们通过该指针调用show()
函数时,实际执行的是Derived
类中的实现,而不是Base
类中的实现。这就是多态性在C++中处理继承关系的方式。