给定类定义如下:
struct A {
std::vector<int> aList;
A() {
for (int i = 0; i < ARRAY_LENGTH; i++)
aList.push_back(0);
}
}
程序的其他部分需要 A 的无参数构造函数。是否可以让 ARRAY_LENGTH 变化(比如从外部文件读取/从 gui 修改),这样
- 步骤 0:ARRAY_LENGTH = 10
- 步骤 1:创建 A 的对象,aList.size() 初始化为 10。
- 第二步:使用A的新创建的对象
- 步骤 3:删除 A 之前创建的所有对象
- 步骤 4:使用不同的 ARRAY_LENGTH 值重复步骤 0 到 4,直到程序结束
ARRAY_LENGTH 的修改应该来自外部文件,或者由 gui 修改。并且程序的任何其他部分都不应该对该值具有写访问权。我怎样才能达到这个要求?
编辑:为了销毁现有对象,它将由程序的其他部分处理
编辑(2):我正在做一个模拟项目,A类中的aList代表家庭规模的可能pdf值。(假设 aList[0] = 0.5,aList[1] = 0.2,aList[3] = 0.3)。只有在程序运行不同的场景时才会发生最大家庭大小的变化,这意味着我将破坏以前创建的 A 对象以重置模拟。