C++ 中一直存在纯虚方法吗?

Have pure virtual methods always existed in C++?

我在一个工作项目中发现了一些代码,当 child class 没有覆盖基 class 函数(本质上,基 class 是使用此实用程序实际上是抽象的)。当我看到这个时,我的第一反应是,"Why don't they just make those methods pure virtual?" 然而,有问题的代码已有 15 年的历史了,我不确定它是否是为了填补纯虚拟稍后会填补的空白而创建的(假设当时不存在)。

自第一个官方 C++98 标准(可能更早)以来,纯虚函数就(一直)存在。

参考ISO/IEC 14882:1998 [class.abstract]

A class is abstract if it has at least one pure virtual function.

进一步挖掘,在 Stroustrup 的 "A History of C++: 1979− 1991" (pdf) 中,他提到抽象 类 在 1989 年左右出现。说

"The very last feature added to 2.0 before it shipped was abstract classes"