用代码定义虚函数、纯虚函数,通过虚函数实现多态
时间: 2024-08-13 13:04:50 浏览: 66
在 C++ 中,使用虚函数和纯虚函数是实现多态的关键部分。以下是这些概念的简要介绍以及如何在代码中定义它们:
1. **虚函数**:
虚函数是在基类中声明但不实现(默认为 `virtual`),在派生类中可以提供具体实现的函数。当你通过基类指针或引用调用一个虚函数时,会根据实际对象类型而不是指针类型来执行对应的派生类版本。例如:
```cpp
class Base {
public:
virtual void display() { std::cout << "Base::display()" << std::endl; }
};
class Derived : public Base {
public:
virtual void display() override { std::cout << "Derived::display()" << std::endl; }
};
```
2. **纯虚函数**:
纯虚函数是一个没有实现的虚函数,它前面加上 `= 0`,表示它在基类中没有具体的行为。纯虚函数用于创建抽象类,强制子类必须实现这些函数。例如:
```cpp
class Abstract {
public:
virtual void abstractMethod() = 0;
};
```
3. **通过虚函数实现多态**:
当你有一个指向抽象类的指针,并调用其中的虚函数时,即使实际上指向的是一个具体的派生类对象,也会调用正确的函数。这是多态的核心机制,因为它允许了不同类型的对象共享相同的接口:
```cpp
Abstract* obj = new Derived(); // 创建派生类对象
obj->abstractMethod(); // 会调用 Derived 类的 abstractMethod 实现
```
阅读全文