好吧,所以我遇到了一個問題,即狀態沒有被添加到我已經設置的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();
}
}
任何提示都非常感謝!
編輯:
一個是一種類型的區域,它包含所有的功能,包括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
正如Atilla所說,請解釋一下。它是一個C數組,一個std :: verctor等? – chameco
編輯回答其中一些問題。 – user1332364