请帮我创建一个带有数组的嵌套结构。如何修复此代码?
class CMain
{
public:
CMain();
~CMain();
private:
struct
{
CCheckSum() : BufferSize(500) {memset(Buffer, 0, BufferSize);}
const int BufferSize;
char Buffer[BufferSize];
}SmallBuffer;
}
谢谢。
最佳答案
即使您将 BufferSize
声明为 const
,在类范围内它也不会声明一个编译时常量,这是在 C++ 中声明数组大小所必需的,但是常量数据成员,一旦在构造函数中设置,在实例的生命周期内就不能再更改(但每个实例仍然可以不同)。
两种解决方案: 制作
BufferSize
static const
在类范围内,或者- (仅)
const
在命名空间范围(包括全局范围)。
关于c++ - 带数组的嵌套结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1194090/