在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 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++中的多态性。