申し訳ありませんが、私は設定した2d配列(allStates)に状態が追加されていないという問題が発生しています。以下は呼び出されているaddState関数のコードです。 allStatesはこの時点まで空でなければならない10x10配列です。C++ランタイムの問題
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();
}
}
どのようなヒントもありがとうございます。
EDIT:
aは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関数が最初に呼び出されているので、私は他の人に問題があるかどうかわかりません。
'allStates'はどのように宣言されていますか?どのような授業が「a」の対象ですか?あなたは詳細を追加する必要があります – Attila
アチラが言ったように、説明してください。それはC配列、std :: verctorなどですか? – chameco
これらの質問の一部には編集されています。 – user1332364