首页 > 后端开发 > C++ > 正文

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

Mary-Kate Olsen
发布: 2024-11-18 07:23:02
原创
856 人浏览过

Why Doesn't C   Have a Virtual Constructor?

C 有虚拟构造函数吗?

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

造物主本人的回答

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

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

理解概念

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

替代方法

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

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板