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

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-18 07:23:02857浏览

Why Doesn't C   Have a Virtual Constructor?

C 有虚拟构造函数吗?

与其他语言不同,C 没有提供虚拟构造函数。这就提出了一个问题:为什么不呢?

造物主本人的回答

C 之父 Bjarne Stroustrup 给出了深刻的解释:

“虚拟调用是一种在给定部分信息的情况下完成工作的机制。[...]要创建对象,您需要完整的信息。[...]因此,对构造函数的调用不能是虚拟的。”

理解概念

本质上,虚拟函数允许动态绑定,使代码能够与不同类型的对象交互不知道他们的确切班级。然而,对象的创建需要有关要实例化的类型的精确信息,这使得虚拟构造函数在概念上是不可能的。

替代方法

尽管没有虚拟构造函数,C 提供了替代方法来实现类似的功能。 Stroustrup 的常见问题解答条目提供了此类解决方案的代码,演示了如何在没有虚拟构造函数的情况下完成所需的行为。

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

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