班级人数限制是多少?

2024-04-10

我想知道一个班级的人数限制是多少。我做了一个简单的测试:

#define CLS(name,other) \
class name\
{\
public: \
name() {};\
   other a;\
   other b;\
   other c;\
   other d;\
   other e;\
   other f;\
   other g;\
   other h;\
   other i;\
   other j;\
   other k;\
};

class A{
   int k;
public:
   A(){};
};

CLS(B,A);
CLS(C,B);
CLS(D,C);
CLS(E,D);
CLS(F,E);
CLS(G,F);
CLS(H,G);
CLS(I,H);
CLS(J,I);

它无法编译

“‘J’:类太大”

如果我删除最终声明 -CLS(J,I);,一切都编译得很好。

这是编译器施加的限制,还是标准中的某个地方?


在 C++11 中,这是附录 B。实现可以施加限制,但它们至少应该是:

  • 对象的大小[262 144]。
  • 单个类中的数据成员 [16 384]。
  • 在单个类中声明的成员 [4 096]。

第三个与您正在使用的构造类型没有直接关系,我提到它只是因为它表明第二个确实是total成员,大概包括基地里的成员,我不确定成员的成员。但这不仅仅涉及单个类定义中列出的成员。

您的实现似乎放弃了 2^31 个数据成员,或者大小为 2^32,因为它接受I但不是J。编译器拒绝考虑大小大于的类显然是合理的SIZE_MAX,即使程序碰巧没有实例化它或使用sizeof关于类型。因此,即使编译器尽了最大努力,我也不会期望它能在 32 位实现上工作。

请注意,“这些数量只是指导方针,并不决定合规性”,因此即使有足够的资源来编译使用较大数字的程序,合规含义也可以施加任意较小的限制。一致性没有最低限制。

在 C++ 标准中,由于资源限制小得离谱,一致性实现有很多机会变得毫无用处,因此,如果这是另一种实现,也不会造成额外的损害。

C++03 或多或少是相同的:

  • 对象的大小[262 144]。
  • 单个类、结构或联合中的数据成员 [16 384]。
  • 在单个类中声明的成员 [4 096]。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

班级人数限制是多少? 的相关文章

  • 具有字典属性的 C# 匿名对象

    我正在尝试将字典转换为匿名类型 每个键都有一个属性 我尝试用谷歌搜索 但我所能找到的只是如何将匿名对象转换为字典 我的字典看起来像这样 var dict new Dictionary
  • C++ 中的类型作为返回类型

    是否有可能从函数返回一个类型作为返回类型 并将其用作成员变量 如下所示 constexpr type myFunction int a int b if a b 8 return int 8t if a b 16 return int 16
  • 管道破裂错误

    我在 FTP 实现中的打开的数据套接字上使用 write 来发送文件 但写入一些数据后 它会挂起一段时间 之后它会返回 损坏的管道 错误 对此的任何帮助将不胜感激 我的进程从一个缓冲区读取数据包并写入套接字 我在增加带宽时注意到了这个问题
  • 在 C++ 中将惰性生成器实现为forward_iterator

    MyGenerator 表示 可能 有限的整数序列 计算成本很高 所以我不想预先生成它们并将它们放入容器中 struct MyGenerator bool HasNext int Next 要打印全部 MyGenerator generat
  • 检查对象类型是否继承抽象类型

    说我有一个对象 someDrink 它可能是类型CocaCola or Pepsi两者都继承了抽象Cola 它继承了Drink 或任何种类的饮料 我有一个方法可以返回一串最喜欢的饮料 public string PreferredDrink
  • 如何在Unity中集成xAPI / TinCan

    我是 xAPI TinCan API 的新手 所以我的问题可能有点笼统 但到目前为止我还没有找到任何可以帮助我的东西 我认为可以将 xAPI 集成到 Unity 项目 游戏或模拟 中 但我到底该怎么做呢 我可以阅读有关 xAPI 和 Uni
  • 当条件满足时如何进入调试模式?

    有没有办法在满足一定条件时进入调试模式 例如 假设我想在以下行进入调试模式i 1变为真 using System namespace ConditionalDebug public class Program public static v
  • 注册模式和注册对象的延迟实例化

    让我们想象一下我们有注册表模式
  • 使用实体框架如何在没有一个庞大查询结果集或数百个小型查询的情况下创建嵌套对象?

    我使用 EF 填充对象 然后在业务层代码中与之交互 这些对象有多个级别 但我们首先将其简化为典型的主从示例Order and OrderLine 假设我需要检索 50 个订单 每个订单大约有 100 个订单行 并且我需要所有这些数据 在 E
  • 高效快速的线程参数方法

    创建带参数的线程最有效的方法是什么 参数是一个结构体 如果该结构体不能保留在父线程堆栈上 有两种解决方案 具有动态内存分配 struct Arg int x int y void my thread void v arg Arg arg A
  • C#中私有类的概念

    除了内部类之外 C 中是否可以存在私有类 根本不 除非它在嵌套类中 否则什么都没有 未嵌套在其他类或结构中的类和结构可以是public or internal 声明为 public 的类型可由任何其他类型访问 声明为内部的类型只能由同一程序
  • bet365 网站上 Selenium 的 Chrome 驱动程序陷入灰屏

    当我尝试使用 Chrome 驱动程序和 Selenium 打开 bet365 网站时出现灰屏 var driver new ChromeDriver driver Navigate GoToUrl https www bet365 it 我
  • Unity构建错误

    所以我制作了我的游戏并尝试构建它 我收到一些对我来说毫无意义的错误 这是错误 UnityEditor BuildPlayerWindow BuildMethodException 2 个错误 在 UnityEditor BuildPlaye
  • 当 Bool 变量变为 True 时更改标签

    我不太确定如何解释这一点 我将把代码放在伪代码中以便于阅读 我几乎想要一个标签在类的 bool 变量更改时更改其文本 我不确定我需要使用什么 因为我使用的是 WPF 并且该类不能只更改我不更改的标签你不觉得吗 我需要举办某种活动吗 或者 W
  • C++:ostream 和 ostringstream 有什么区别?

    ostream 和 ostringstream 有什么区别 你什么时候会使用其中一种而不是另一种 简单地说 ostringstream提供了一个streambuf ostream要求用户提供一份 要理解其中的含义 有必要了解一点 流是如何工
  • 自定义 web.config 部分处理程序

    我之前设计过一个自定义部分处理程序 但我遇到了一个我似乎无法想到的问题 我有一个像这样的配置部分
  • [BotFramework]:如何修复:在 V4 中开发的 C# WebChatBot 中,欢迎消息未向用户显示,但在模拟器中显示?

  • 为什么我可以使用 ret 退出 main?

    我即将弄清楚程序堆栈到底是如何设置的 我了解到用以下方式调用该函数 call pointer 实际上等同于 mov register pc programcounter add register 1 where 1 is one instr
  • gfortran 未定义的引用

    我正在尝试编译一个依赖很多东西的程序 我使用并修改了提供的 makefile 来代表我的计算机设置 但在编译的最后一步中我不断收到许多未定义的引用 导致问题的命令行是 gfortran o cosmomc ParamNames o Matr
  • 处理在没有全局变量的情况下跨函数使用的变量

    所以我正在开发一个基本的文字游戏 你会得到一只字母 手 字典对象 你可以用它来创建单词并获得分数 这个 手牌 被用在许多函数的参数中 计算玩家的分数 在玩家使用一个或多个字母后更新手牌中的字母数量 显示手牌 检查玩家单词的有效性 ETC 从

随机推荐

  • Java 中使用分隔符“.”的分词问题

    我需要使用分隔符分割文本 例如我想要这个字符串 Washington is the U S Capital Barack is living there 分为两部分 Washington is the U S Capital Barack
  • Spring Security 中具有密码授予的 oAuth2 客户端

    我正在使用一组受 oAuth2 保护的服务 目前的工作原理如下 客户端使用用户名和密码登录 我用这些换取代币 我将令牌保留在会话中 并在每次想要调用服务时提交它 它可以工作 但问题是我完全手动执行此操作 而没有使用 Spring Secur
  • 使用命令中断循环

    在我的 Python Discord Bot 中 我想创建一个命令 这会导致循环运行 当我输入第二个命令时 循环应该停止 那么粗略地说 client event async def on message message if message
  • Node.js 中多线程处理文件

    我需要从在线 url 读取文件并在多线程中处理它并将其写入另一个输出中 https www w3 org TR PNG iso 8859 1 txt https www w3 org TR PNG iso 8859 1 txt我尝试过的解决
  • 如何测量图像上绘制的线的长度? C#

    我想编写一个应用程序来测量在显微镜下检查的样本碎片 我认为最好的方法是捕获图像并在样本的选定部分上绘制 然后以像素为单位计算绘制线的值 然后将该值转换为适当的单位 是否有任何东西可以帮助解决已经实现的此类问题 或者有任何工具 包或允许此类计
  • C# LINQ 用有意义的字符串替换空值

    从列表中 class Delivery public string ProductCode get set public DateTime OrderedDate get set public DateTime DeliveryDate g
  • 如何在 iPhone 上运行的应用程序中浏览核心数据?

    我正在开发一个使用核心数据的 iPhone 项目 并试图找到一种方法来轻松浏览数据的存储方式 具体来说 我将图像存储在核心数据中 并想查看它们占用了多少空间等 我发现了一个名为 核心数据编辑器 的应用程序 可以让你在 iPhone 模拟器上
  • 将球体上的 3d 点转换为 UV 坐标

    我在球体上有一个 3d 点 想要将其转换为球体纹理上的 UV 点 有人可以指出正确的方向吗 我可以采用纯数学解决方案 Edit 我目前有这个 它不会返回正确的 UV 坐标 p 是球体上的 3d 点 mesh position 是球体的位置
  • Phoenix:订购查询集

    我 一个菜鸟 为了好玩而玩弄 Phoenix 框架并构建一个小型 Twitter 克隆 我一切正常 但是 我想按updated at字段 升序 正如您从 tweet controller 中看到的 我尝试过使用 order by 子句 但这
  • (MySQL) 在文件特定列中加载数据

    我在将数据加载到表的特定列时遇到问题 CSV 文件是动态构建的 具有默认字段 ID LAST REFRESH ALIAS1 和可能含有ALIAS2 至 ALIAS8 当前 CSV 仅包含 ALIAS1 4 MySQL 表包含 ID LAST
  • 在 64 位 Windows 计算机上使用 32 位 com 运行 32 位应用程序

    我有一个使用 C COM 对象的 C 应用程序 两者都构建在 32 位计算机上 现在我必须在 64 位机器上运行它们 我注册了COM对象 在计算机 hkey classes root wow6432node clsid xxx 下的寄存器中
  • C++ 中的嵌套 Lambda 捕获 [重复]

    这个问题在这里已经有答案了 我有类似的东西 think of Synonym as a set vector of values the purpose of this function is to filter out elements
  • Javascript 函数显示所遵循城市的路线

    我正在 codewars com 上练习编码 我碰到这个问题 https www codewars com kata 5899a4b1a6648906fe000113 train javascript 我们正在追踪我们的流氓特工马修 奈特
  • WPF 多线程

    我正在绞尽脑汁地尝试让多线程在 WPF 中按照我想要的方式工作 我有一个名为 Manager 的对象 带有单例 它执行大量处理和查找 我希望它在与 UI 分开的线程中运行 UI 将调用 Manager 上的方法来执行 UI 应该做出反应的处
  • 使用.net 2.0 连接到 FTP 服务器 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我希望连接到现有的 FTP 服务器 上传文件 等待服务器生成报告 然后将该报告下载回 VB NET 2
  • 您应该如何有效地批处理复杂的网格?

    渲染复杂网格的最佳方法是什么 我在下面写了不同的解决方案 想知道您对它们有何看法 让我们举个例子 如何渲染 Crytek Sponza 网格 PS 我不使用Ubershader 只使用单独的着色器 如果您通过以下链接下载网格 http gr
  • 执行eglSwapBuffer和eglMakeCurrent时性能低下

    我正在开发一个 Android Unity 插件 允许用户记录他 她的游戏玩法我的解决方案概述 使用 OpenGl FrameBufferObject FBO 使 Unity 离屏渲染到此 FBO Get the offscreen tex
  • Android 平板电脑的 IMEI 号码

    在我的应用程序中 我必须获得我正在使用的设备的唯一编号TelephonyManager 我能够得到imei or device id在 Android 手机中 但 Android 平板电脑 Xoom 可以获取唯一编号 我正在使用此代码来获取
  • Kotlin DSL 构建脚本依赖项更新[重复]

    这个问题在这里已经有答案了 已经有大量文章介绍了从使用 groovy 脚本迁移到使用 Kotlin DSL 进行 Gradle 依赖项管理如何成为管理构建脚本的理想方法以及其他提到的优点 然而 我发现的限制是缺乏这种 Gradle 管理方式
  • 班级人数限制是多少?

    我想知道一个班级的人数限制是多少 我做了一个简单的测试 define CLS name other class name public name other a other b other c other d other e other f