C++ 是一种面向对象编程语言,C 则不是。多态是面向对象三大特性之一,虚函数是动态多态的代表特性。因此,使用 C 语言无法实现虚函数。
C++类:构造函数(对象创建时调用)、析构函数(对象销毁时调用)、虚函数(实现多态)。构造函数不能为虚。
构造函数不能是虚函数(虚表在构造函数完成后才建立)。析构函数可以且通常应该为虚函数(防止内存泄漏)。
【考点】面向对象编程|虚函数机制|语言特性
GESP 八级 C++ 模块第 4 章「语言特性」必考。命题人卡住「C++ 是 C 的超集」这一基础认知,专治「非面向对象语言就不能有虚函数」的绝对化思维。