Tôi đã tự hỏi giới hạn kích thước của lớp là bao nhiêu. Tôi đã làm một thử nghiệm đơn giản:Giới hạn kích thước cho một lớp học là bao nhiêu?
#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);
Nó không biên dịch với
" 'J': lớp là quá lớn"
Nếu tôi loại bỏ các tuyên bố chính thức - CLS(J,I);
, nó tất cả các biên dịch đều tốt.
Đây có phải là hạn chế do trình biên dịch áp đặt hay là một nơi nào đó trong tiêu chuẩn?
Với xác định cuối cùng bạn đạt khoảng 10 GB (tùy thuộc vào vùng đệm) cho lớp J. – dalle
Tôi vừa tuyên bố nó, không thực sự sử dụng nó.Tôi đặt cược tuyên bố một mảng của một số lớp H sẽ phá vỡ thời gian chạy :) –