さて、設定した 2 次元配列 (allStates) に状態が追加されないという問題が発生しています。以下は、呼び出されている addState 関数のコードです。allStates は 10x10 の配列で、この時点までは空である必要があります。
void addState(string stateName){
for (int row=0; row<10; row++){
for (int col=0; col<10; col++){
if (allStates[row][col].get_name().empty()){
allStates[row][col].set_values(stateName);
cout << allStates[row][col].get_name();
break;
}
}
}
};
以下は addState 関数が呼び出されるコード内の場所です。
while(!infile.eof() && infile.good()){
infile >> command;
cout << command;
if (command == "addState"){
string stateName;
infile >> stateName;
cout << "\n" << stateName;
a.addState(stateName);
cout << a.get_state(stateName).get_name();
}
}
どんなヒントでも大歓迎です!
編集:
a はタイプ Area であり、addState、deleteState などを含むすべての関数を保持します。オブジェクトなしではこれらの関数を呼び出すことができないというエラーが表示されたので、それを可能にする変数を作成しました。
allStates は、これらすべての関数を使用して Area クラスで初期化されます。
EDIT2:
class Area{
State allStates[10][10];
public:
void addState(string stateName){
for (int row=0; row<10; row++){
for (int col=0; col<10; col++){
if (allStates[row][col].get_name().empty()){
allStates[row][col].set_values(stateName);
cout << allStates[row][col].get_name();
break;
}
}
}
};
State get_state(string name){
for (int row=0; row<10; row++){
for (int col=0; col<10; col++){
if (allStates[row][col].get_name() == name)
return allStates[row][col];
}
}
};
void deleteState(string name){
for (int row=0; row<10; row++){
for (int col=0; col<10; col++){
string newest;
newest.clear();
if (allStates[row][col].get_name() == name)
allStates[row][col].set_values(newest);
}
}
};
};
クラスにはさらにいくつかの関数がありますが、addState 関数が最初に呼び出されるため、他の関数に問題があるかどうかはわかりません。