c++ - 带数组的嵌套结构

标签 c++ initialization nested-class

请帮我创建一个带有数组的嵌套结构。如何修复此代码?

class CMain
{
    public:
        CMain();
        ~CMain();

    private:
        struct
        {
            CCheckSum() : BufferSize(500) {memset(Buffer, 0, BufferSize);}
            const int BufferSize;
            char Buffer[BufferSize];
        }SmallBuffer;
}

谢谢。

最佳答案

即使您将 BufferSize 声明为 const,在类范围内它也不会声明一个编译时常量,这是在 C++ 中声明数组大小所必需的,但是常量数据成员,一旦在构造函数中设置,在实例的生命周期内就不能再更改(但每个实例仍然可以不同)。

两种解决方案: 制作

  1. BufferSize static const 在类范围内,或者
  2. (仅)const 在命名空间范围(包括全局范围)。

关于c++ - 带数组的嵌套结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1194090/

相关文章:

c++ - Qt::Popup 破坏 QScroller 动态滚动?

c++ - 不裁剪图像旋转

python - 如何在python的类定义中声明未初始化的变量

c++ - 初始化多对象双端队列<vector<vector<float>>>

C 初始化矩阵

java - 将类嵌套在接口(interface)中是个好主意吗?

c++ - 尾随返回类型语法风格是否应该成为新 C++11 程序的默认设置?

c++ - uuid_t 的现有哈希函数

c++ - 在试图声明数组的嵌套类中未定义对...的引用?

java - 实例化静态嵌套类