gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 00:43:08 27 4
gpt4 key购买 nike

我在一个工作项目中发现了一些代码,当子类没有覆盖基类函数时会抛出错误(本质上,使用此实用程序的基类实际上是抽象的)。当我看到这个时,我的第一 react 是,“他们为什么不把这些方法做成纯虚拟的呢?”但是,相关代码已有 15 年历史,我不确定创建它是否是为了填补纯虚拟稍后会填补的空白(假设当时不存在)。

  • 如果从那时起就存在纯虚拟方法,是否有任何理由为它们提供额外的或替代的功能? (我意识到这可能是主观的,但我什至没有一个起点)。

  • 如果没有,是否有任何文档指出是哪个标准引入了它们?

最佳答案

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

引用ISO/IEC 14882:1998 [class.abstract]

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

在 Stroustrup 的“C++ 历史:1979− 1991”(pdf) 中进行更多挖掘,他提到抽象类在 1​​989 年左右出现。说

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

关于c++ - C++ 中一直存在纯虚方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56637341/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com