次のように定義された特定のクラス:
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: aList.size() を 10 として初期化して、A のオブジェクトを作成します。
- ステップ 2: 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 のオブジェクトを破棄して、シミュレーションをリセットします。