This回答说,在Java中,对象可能拥有的最大字段数为65536。
C ++中的对象是否有这样的限制?
答案 0 :(得分:14)
C ++ 03标准,附件B(实施数量):
由于计算机是有限的,C ++实现不可避免地受到限制 他们可以在程序的大小 成功处理。一切 实施应记录这些 已知的局限性。这个 文件可以引用固定限制 它们存在的地方,说如何计算 变量限制作为函数 可用资源,或说固定 限制不存在或未知。
- 醇>
限制可能会限制数量 包括下面描述的那些或 其他。括号内的数字如下 建议将每个数量作为 该数量的最小值。然而, 这些数量只是指导原则 并且不确定合规性。
列表包括
因此没有定义的限制,但是应用限制的实现“应该”使限制至少与指示的值一样大。我担心我不知道普通的实现实际上做了什么,但如果他们没有记录它们,它们要么不合规,要么限制是“未知”。我想“未知”通常意味着“在编译时我们可以在可用内存中使用多少”。
是的,我不确定“班级成员”和“班级成员”之间的区别。我认为这意味着如果你的基类有10个数据成员,并且你的类声明了10个成员,那么你的类总共有20个(或21个)数据成员(取决于基类子对象是否算作数据成员) )。答案 1 :(得分:1)
我不相信C ++规范中有任何内容可以涵盖这一点,但我怀疑不同的编译器会有不同的限制。
答案 2 :(得分:1)
对象可以拥有的字段数量没有硬性限制,但是我认为这是高度平台和编译器相关的。
如果您在对象中使用100个或更多字段,那么您的类的设计可能会出现问题,因此不必担心限制而是担心OOP设计