首页 > 后端开发 > C++ > 为什么纯虚函数初始化为'0”?

为什么纯虚函数初始化为'0”?

Patricia Arquette
发布: 2024-11-26 14:32:09
原创
166 人浏览过

Why are Pure Virtual Functions Initialized with `0`?

理解用'0'初始化纯虚函数

声明纯虚函数时,你可能会注意到它们总是被分配给值 0:

virtual void fun() = 0;
登录后复制

这种做法提出了一个问题:为什么纯虚函数是用 0 初始化。

错误的假设

最初,您可能认为值 0 被分配给纯虚函数以将相应的 vtable 条目设置为 NULL。然而,这个假设是不正确的。分配给纯虚函数的值不一定将 vtable 条目设置为 NULL。

'0' 的真正原因

=0 语法的使用纯虚函数的诞生可以追溯到 Bjarne Stroustrup 在 C 上的早期工作。他没有引入像“pure”这样的新关键字,而是选择了 =0 语法,因为他相信当时它更有机会被 C 社区接受。

正如 Stroustrup 本人在他的书中所说, “C 的设计与演变”中, =0 语法并不是为了将 vtable 条目设置为 NULL。而且,将vtable项设置为NULL并不是纯虚函数的理想实现策略。

结论

纯虚函数的初始化为0与将 vtable 条目设置为 NULL。相反,在 C 开发的早期阶段,选择 =0 语法纯粹是出于可读性和兼容性的原因。

以上是为什么纯虚函数初始化为'0”?的详细内容。更多信息请关注PHP中文网其他相关文章!

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