C++ 虚函数,虚析构函数与多态,纯虚函数与抽象
💡
原文中文,约6400字,阅读约需16分钟。
📝
内容提要
虚函数和多态是面向对象编程中的重要概念。虚函数允许在派生类中重写基类的函数,并且在运行时根据对象的实际类型来调用函数。虚函数的概念在C++中通过在基类函数声明前面加上关键字virtual来定义。派生类可以重写基类的虚函数,使用override关键字来确保正确的重写。当通过基类指针或引用调用虚函数时,将根据对象的实际类型来调用正确的函数。隐藏是指子类中的成员函数隐藏了父类中同名的成员函数。虚析构函数是为了正确释放派生类对象的资源,通常应该声明为虚函数。多态是在运行时根据对象的实际类型来调用适当的函数。纯虚函数和抽象类是C++中的概念,纯虚函数在基类中只能申明,并且不能有函数体,需要在派生类中重写。抽象类不能被实例化,只能用作其他类的基类。
🎯
关键要点
- 虚函数和多态是面向对象编程中的重要概念。
- 虚函数允许在派生类中重写基类的函数,并在运行时根据对象的实际类型调用函数。
- 在C++中,通过在基类函数声明前加上关键字virtual来定义虚函数。
- 派生类可以使用override关键字重写基类的虚函数,确保正确的重写。
- 虚函数的调用根据对象的实际类型进行,而不是指针或引用的类型。
- 隐藏是指子类中的成员函数隐藏了父类中同名的成员函数。
- 虚析构函数用于正确释放派生类对象的资源,通常应声明为虚函数。
- 多态是在运行时根据对象的实际类型调用适当的函数。
- 纯虚函数在基类中只能声明,不能有函数体,必须在派生类中重写。
- 抽象类不能被实例化,只能作为其他类的基类。
- 不应滥用虚函数,只有需要被子类重写的函数才应设计为虚函数。
- 纯虚函数和抽象类的概念在C++中与Java类似,抽象类中至少有一个纯虚函数。
- 在实际开发中,类的声明应在头文件中,定义在源文件中。
➡️