Я просто изучаю C++, исходя из фона Java.C++ String array issue
Просто играть вокруг с простых классов теперь, но по какой-то причине следующий не будет компилировать, когда тот же синтаксис компилируется нормально в другом месте:
class CardDealer {
private:
string suits[4];
string values[13];
bool cardTaken[4][13];
int getRand(int top);
void getValidSuit(int *suit);
void getValidCard(int suit,int *value);
public:
CardDealer();
string dealCard();
void resetDeck();
};
CardDealer::CardDealer(){
suits = {"hearts", "clubs", "spades", "diamonds"};
values = {"ace","two","three","four","five","six","seven","eight","nine","ten","jack","queen","king"};
cardTaken = {{false,false,false,false,false,false,false,false,false,false,false,false,false},{false,false,false,false,false,false,false,false,false,false,false,false,false},
{false,false,false,false,false,false,false,false,false,false,false,false,false},{false,false,false,false,false,false,false,false,false,false,false,false,false}};
}
, очевидно, что это просто часть класса так пожалуйста, не «т кричать на меня не хватает„}“s
компилятор патроны шаткий, когда он попадает в инстанциацию в конструкторе, выплевывает ошибки, подобные этим:
1>.\CardDealer.cpp(26) : error C2059: syntax error : '{'
1>.\CardDealer.cpp(26) : error C2143: syntax error : missing ';' before '{'
1>.\CardDealer.cpp(26) : error C2143: syntax error : missing ';' before '}'
1>.\CardDealer.cpp(27) : error C2059: syntax error : '{'
1>.\CardDealer.cpp(27) : error C2143: syntax error : missing ';' before '{'
1>.\CardDealer.cpp(27) : error C2143: syntax error : missing ';' before '}'
1>.\CardDealer.cpp(28) : error C2059: syntax error : '{'
линия 26 является тот, в котором я инстанцирован костюмы (suits = {
...)
спасибо за Взглянув ребята, высоко ценится
ugh, thats gasty. Я не мог заставить его работать при инициализации, поэтому мне пришлось идти по одному по времени маршруту. ваше право, очень утомительно. спасибо! –
Это не единственное решение, но вы можете сохранить фиксированные инициализаторы в отдельном массиве (возможно, в массиве const char *) и просто скопировать их в переменные экземпляра класса с одним вызовом std :: copy в конструкторе. –