【发布时间】:2021-07-19 22:43:19
【问题描述】:
人们已经有几个问题询问 C++ 中类和结构之间的区别。 引用最多的区别是默认可见性不同。 甚至 Stroustrup 似乎都在暗示基本没有区别。
我认为我的问题不是重复的,因为我想问一些具体而准时的问题:对类使用结构是否在速度、内存使用或效率方面有任何影响?是否可以基于它们的任何优势来选择一个而不是另一个?
作为参考,我正在评估一个人的 C++ 代码,它只使用结构,我打算将它移植到资源有限的 ARM 架构。
【问题讨论】:
-
除了可见性(以及旧 msvc 的名称修改问题)之外,没有任何区别。
-
您回答了自己的问题; “甚至 Stroustrup 似乎也暗示基本没有区别。”。不,除了成员的默认可见性之外,结构和类完全相同。
-
默认可见性是被引用最多的区别,因为它是唯一的。
-
它是重复的,因为除了默认访问之外没有差异并不包括在性能上没有差异。也许它没有明确说明here,但 C++ 没有结构和类。 C++ 有类。
struct和class是您可以用来声明类的两个关键字。我会投票关闭作为骗子,但不想锤它...... -
为什么一个 C++ 编译器会生成不同的代码?那将毫无意义。如果您使用的平台确实生成了不同的代码,请联系编译器供应商并报告错误。
标签: c++ performance class struct memory-efficient