阅读量:41
在C++中,多态性是通过虚函数(virtual functions)和继承(inheritance)来实现的。多态性允许我们使用基类的指针或引用来调用派生类的成员函数。以下是实现多态性的步骤:
- 创建一个基类,并在其中声明虚函数。虚函数是在基类中使用关键字
virtual声明的成员函数。这意味着派生类可以覆盖(override)这个函数。
class Base {
public:
virtual void print() {
cout << "Base class print function" << endl>
- 创建一个或多个派生类,并覆盖基类中的虚函数。在派生类中,使用相同的函数签名覆盖基类中的虚函数。
class Derived1 : public Base {
public:
void print() override {
cout << "Derived1 class print function" << endl class="hljs-keyword">class Derived2 : public Base {
public:
void print() override {
cout << "Derived2 class print function" << endl>
- 使用基类的指针或引用来调用派生类的成员函数。这里我们使用基类指针指向派生类对象,并通过基类指针调用虚函数。
int main() {
Base *basePtr;
Derived1 derived1;
Derived2 derived2;
basePtr = &derived1;
basePtr->print(); // 输出 "Derived1 class print function"
basePtr = &derived2;
basePtr->print(); // 输出 "Derived2 class print function"
return 0;
}
在这个例子中,我们使用基类Base的指针basePtr分别指向Derived1和Derived2的对象。当我们通过basePtr调用print()函数时,实际调用的是派生类中覆盖的版本。这就是C++中的多态性。