📜  C ++ |虚函数|问题12(1)

📅  最后修改于: 2023-12-03 14:39:38.753000             🧑  作者: Mango

C++ |虚函数|问题12

在 C++ 中,可以使用虚函数实现运行时多态性。C++ 中的虚函数是在基类中声明的,当在派生类中重新定义虚函数时,该函数将自动成为虚函数。

使用虚函数的好处

使用虚函数有以下好处:

  • 实现了运行时多态性,使得程序更加灵活
  • 方便地进行类层次结构的继承和派生
  • 可以在父类定义虚函数,子类可以按需继承,减少代码重复
代码示例
#include <iostream>
using namespace std;

class Person {
   public:
    virtual void introduce() {
        cout << "I am a person." << endl;
    }
};

class Student : public Person {
   public:
    void introduce() override {
        cout << "I am a student." << endl;
    }
};

int main() {
    Person* p;
    Student s;
    p = &s;
    p->introduce();
    return 0;
}

代码解释:

  • Person 类中声明了虚函数 introduce()
  • Student 类继承自 Person 类,重写了 introduce() 函数,添加了 override 关键字
  • main() 函数中,创建一个 Student 对象 s,将其地址赋给 Person 指针 p,然后调用 introduce() 函数。可以看到输出的是 I am a student.
小结

虚函数可以实现运行时多态性,使得程序更加灵活,方便地进行类层次结构的继承和派生,并可以在父类定义虚函数,子类按需继承,减少代码重复。使用时需要注意函数的声明和重写操作。