Ich lerne gerade C++ aus einem Java-Hintergrund.C++ String Array Ausgabe
Nur mit einfachen Klassen der Umgebung ín, aber aus irgendeinem Grunde die folgenden nicht kompiliert werden, wenn die gleiche Syntax fein an anderer Stelle erstellt:
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}};
}
offensichtlich ist dies nur ein Teil der Klasse, so wenden Sie sich bitte don ‚t schreien mich an für fehlende‚}‘s
Compiler Futter ein wackelig, wenn es die instantiations im Konstruktor trifft, spuckt Fehler wie diese:
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 : '{'
Linie 26 derjenige ist, wo ich instanziiert haben Anzüge (suits = {
...)
Dank für einen Blick Jungs nehmen, viel
geschätzt
ugh, das ist böse. Ich konnte es nicht bei der Initialisierung arbeiten, also musste ich die eine-nach-einer-Zeit-Route gehen. Ihr Recht, extrem langwierig. danke! –
Dies ist jedoch nicht die einzige Lösung. Sie können die festen Initialisierer in einem separaten Array speichern (vielleicht ein Array von const char *) und sie einfach in die Klasseninstanzvariablen mit einem einzigen std :: copy-Aufruf im Konstruktor kopieren. –