c++多态的实现方式,
时间: 2024-10-25 15:13:35 浏览: 12
c++多态实现通讯录 通讯录管理程序
5星 · 资源好评率100%
C++中的多态主要是通过虚函数(Virtual Function)和指针或引用来实现的。以下是几种关键机制:
1. **虚函数**:在基类中声明为`virtual`的成员函数,如果在派生类中覆盖了这个函数,那么通过基类指针或引用调用该函数时会调用实际的对象类型所定义的版本。这是动态绑定的基础。
```cpp
class Base {
public:
virtual void show() { cout << "Base" << endl; }
};
class Derived : public Base {
public:
void show() override { cout << "Derived" << endl; }
};
```
2. **纯虚函数**:通过在基类中声明函数为`=0`使其成为纯虚函数,迫使派生类必须提供实现。这样创建的基类只能作为抽象类使用。
```cpp
class AbstractClass {
public:
virtual ~AbstractClass() {}
virtual void pureFunction() = 0;
};
```
3. **动态类型转换(Downcasting)**:可以使用`dynamic_cast`安全地将基类指针或引用转换为派生类类型,以便访问特定于派生类的功能。
```cpp
Base* basePtr = new Derived();
Derived* derivedPtr = dynamic_cast<Derived*>(basePtr);
derivedPtr->show(); // 输出 "Derived"
```
阅读全文