首页  >  文章  >  后端开发  >  为什么C没有虚拟构造函数?

为什么C没有虚拟构造函数?

DDD
DDD原创
2024-11-22 09:58:10720浏览

Why Doesn't C   Have Virtual Constructors?

为什么虚拟构造函数不是 C 工具包的一部分

与许多编程语言不同,C 并没有在其框架中包含虚拟构造函数。揭示这一设计决策背后的基本原理需要深入研究虚拟调用和构造函数的固有特征。

虚拟调用支持基于已知接口而不是特定对象类型的函数调用。事实证明,这种功能对于编排多态行为非常宝贵。然而,在创建对象时,准确了解其确切类型至关重要。

C 架构师 Bjarne Stroustrup 简洁地阐明了这个概念:“虚拟调用是一种在给定部分信息的情况下完成工作的机制。 .. 要创建对象,您需要完整的信息...因此,“对构造函数的调用”不能是虚拟的。”

虽然虚拟构造函数似乎是可取的,但它缺席并不妨碍取得类似的成果。上述常见问题解答条目提出了一种模拟虚拟构造函数行为的实用方法,而无需诉诸其显式实现。

以上是为什么C没有虚拟构造函数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn