虚函数和纯虚函数

在 C++ 中,虚函数(Virtual Function)和纯虚函数(Pure Virtual Function)是面向对象编程中的重要概念,用于实现多态性和抽象类。

1. 虚函数:
   - 虚函数是在基类中声明为虚拟的成员函数,可以被子类重写。通过使用虚函数,可以实现运行时多态性。
   - 在基类中通过将函数声明为虚函数,可以使子类对该函数进行覆盖(Override)。在运行时,根据对象的实际类型来调用相应的函数。
   - 声明虚函数的语法是在函数声明前面加上 `virtual` 关键字。子类中可以选择性地重写这些虚函数。

class Base {
public:
    virtual void show() {
        cout << "Base class" << endl;
    }
};

class Derived : public Base {
public:
    void show() override {
        cout << "Derived class" << endl;
    }
};

2. 纯虚函数:
   - 纯虚函数是在基类中声明为纯虚拟的虚函数,没有具体的实现,在基类中只有声明,不需要定义函数体。
   - 包含纯虚函数的类称为抽象类(Abstract Class),不能被实例化,只能作为基类来派生其他类。
   - 派生类必须实现纯虚函数,否则它们也会成为抽象类。

class AbstractBase {
public:
    virtual void show() = 0; // 纯虚函数
};

class ConcreteDerived : public AbstractBase {
public:
    void show() override {
        cout << "ConcreteDerived class" << endl;
    }
};

总结:
- 使用虚函数可以实现运行时多态性,允许在运行时动态绑定函数调用。
- 使用纯虚函数可以定义抽象接口,强制派生类实现特定的函数,实现接口的统一规范。

你可能感兴趣的:(C++基础笔记,c++)