C ++中一个类可以拥有的最大成员数是多少?

6

请将这个问题视为好奇心的问题。

我只是想知道在C++中,一个类可以拥有的成员数量是否有限制。希望会有一些最大允许的数字,因为我想语言中的所有东西都是有限的。


7
几乎可以确定是实现定义,并且通常会发出警告:“如果你必须询问,那么你正在做错什么”。 - Damien_The_Unbeliever
规范中没有定义限制 - 这将完全取决于平台及其编译器。但是,每个编译器应该支持最小值。它是16384。 - Dariusz
1
@Damien_The_Unbeliever:我认为这不是对一个真正问题的正确评论方式。当然,我接受你的评论。但我更喜欢回答而不是评论。 - CodeRider
这是一条注释,因为它没有直接回答你提出的问题。但是我的意图是指出你所提出的问题本身可能并没有一个确切的答案。 - Damien_The_Unbeliever
@Damien_The_Unbeliever:说“这是实现定义的”就是一个答案。仅仅因为它不是一个数字并不意味着它不能回答问题。 - Nicol Bolas
显示剩余2条评论
1个回答

8

该值由每个实现定义。C++标准在附录B中推荐一些最小支持数量:

— 单个类中的数据成员[16 384]。

[...]

— 直接和间接基类[16 384]。

— 单个类的直接基类[1 024]。

— 单个类中声明的成员[4 096]。

— 类中最终覆盖的虚函数,无论是否可访问[16 384]。

— 类的直接和间接虚拟基类[1 024]。

— 类的静态成员[1 024]。

"单个类中声明的成员"的最小值小于"单个类中的数据成员"的最小值,因为类可以从其基类继承数据成员。


3
那应该对每个人都足够了。真的 :) - jrok
为什么单个类中的数据成员比声明在单个类中的成员多4倍?如果区别在于“成员”包括“数据成员”和“成员函数”,那么应该允许更多的“成员”而不是“数据成员”。我错过了什么?O_O - Armen Tsirunyan
@Armen:我已经编辑了那个解释!请刷新您的浏览器! - R. Martinho Fernandes
@R.MartinhoFernandes:啊,我明白了。 - Armen Tsirunyan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接