首页 >后端开发 >C++ >为什么 `std::is_struct` 不区分 C 中的结构和类?

为什么 `std::is_struct` 不区分 C 中的结构和类?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-26 14:56:31573浏览

Why Doesn't `std::is_struct` Distinguish Between Structs and Classes in C  ?

为什么 std::is_struct 不区分结构体和类

在 C 中,你可能会遇到情况区分类和结构很重要。然而, std::is_struct 类型特征不提供这种区别。理解为什么可以澄清对类和结构体的误解。

误解:结构体和类是不同的类型

“除了可见性之外,结构体和类之间没有区别”会造成混乱。实际上,C 自 1985 年以来就有了类,struct 关键字是为了与 C 向后兼容。

现实:使用 class 和 struct 是类

struct 关键字仅影响成员和基的默认可见性。 使用 classstruct 声明的 类型都是类。

结论

std::is_struct 不区分结构和类,因为在 C 中没有这样的区别。使用 classstruct 声明的类是相同的类型,并且具有相同的可见性规则。

以上是为什么 `std::is_struct` 不区分 C 中的结构和类?的详细内容。更多信息请关注PHP中文网其他相关文章!

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