我想知道什么是一个类的大小限制。我做了一个简单的测试:课堂大小限制是多少?
#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);
,它所有编译都很好。
这是一个编译器施加的限制,还是在标准的某处?
随着最后一次定义,你会达到约10 GB(取决于填充)的J类。 – dalle 2011-12-15 13:00:33
我只是宣布它,而不是实际使用它。我敢打赌,宣布一些H类的数组会破坏运行时:) – 2011-12-15 13:02:47