1
我想寫戰艦的比賽,但我得到了一些麻煩,當涉及到OOP方面...首先,我Battlefield
類傳遞類屬性的功能
class Battlefield
{
private:
string **array;
public:
Battlefield();
~Battlefield();
void createBattlefield();
void drawBattlefield();
string getArray();
};
構造
Battlefield::Battlefield()
{
array = new string*[12];
for (int i = 0; i < 12; i++){
array[i] = new string[12];
}
}
的getArray()
string Battlefield::getArray()
{
return **array;
}
第二類是Game
,在那裏到現在我只有一個方法shoot()
void Game::shoot(string **array)
{
char row;
int column;
cout << endl << "Row (A, B, ... , J): ";
do{
cin >> row;
if (islower(row)) row = toupper(row);
if (row > 'J' || row < 'A'){
cout << "Row out of range!" << endl << "Try again: ";
}
} while (row > 'J' || row < 'A');
cout << "Column (1, 2, ... , 10): ";
do{
cin >> column;
if (column > 10 || column < 1){
cout << "Column out of range!" << endl << "Try again: ";
}
} while (column > 10 || column < 1);
array[(int)(row - 64)][column] = "[.]";
}
其中basicly只是放在[]數組[X] [Y] 但是我在遇到問題時得到這個在main
int main()
{
Battlefield array;
Game game;
array.createBattlefield();
game.shoot(array.getArray());
}
最後一行共同努力使
錯誤C2664: '無效遊戲::拍(的std :: string **)':無法從 '的std :: string' 轉換參數1 '的std :: string **'
錯誤消息應該是很清楚的,如果你只是讀它。想一想'getArray' ***真的會返回什麼。提示:這不是一個數組。 –
在略有相關的說明中,如果您分配固定大小的字符串和數組字符串,那麼我建議['std :: array'](http://en.cppreference.com/w/cpp/container/array )代替。 –
在C++中至少有20年的經驗之前,不要使用'new'。 – nwp