c++ - 使用 const 成员变量索引数组
问题描述
我有以下课程。我想将该成员size
用作arr1
我将填写在构造函数中的索引。但是,编译器不会编译并说“无法初始化可变大小的对象”。如果size
是 const,这怎么可能?
另一方面,arr2
通过使用正确填充siz
。
class myclass {
public:
myclass()
{
int arr1[size] = { 1, 2 };
const size_t siz = 2;
int arr2[siz] { 1, 2 };
};
const size_t size = 2;
};
解决方案
它不起作用的原因是您可以在构造函数中更改它:
myclass() : index(3)
{
//...
}
您只是默认初始化了 const 成员。
你没有理由不在std::Vector
这里使用。
您可以通过将其设为静态来使其工作(坏主意):
static const size_t index = 2;
PS。index
这里的名字不好,你的意思是数组的大小而不是它的索引。
推荐阅读
- sql-server - 是否有将列命名为特定名称的规则?
- testing - 在没有 UI 交互的情况下设置值。赛普拉斯应用程序操作
- php - 为什么 DOMDocument 会弄乱 unicode 不间断空格
- java - 即使我使用的是 Locale.US,点也会返回 MisMatch 异常
- r - 如何根据具有条件的两个列删除重复项?
- windows - 是否存在 ReadProcessMemory 失败的情况?
- ethereum - 检测 MetaMask 注销(以太坊)
- c - 生成数独谜题
- python - 如何将我的简单游戏从 .py 文件转换为可执行文件?
- angular - 如何在 Angular 中模拟 AWS Amplify 库?