C++ / "string" wurde nicht deklariert in diesem Bereich/ Fehler
Ich bin ein Programm zu machen, das wird verfolgen golf-Statistiken, so brauche ich, um Spieler. Ich habe eine Funktion namens
getPlayer(int playerNum);
und darin habe ich alle dieser code
switch(playerNum)
case 1: return(player1);break;
case 2: return(player2);break;
case 3: return(player3);break;
case 4: return(player4);break;
case 5: return(player5);break;
case 6: return(player6);break;
case 7: return(player7);break;
case 8: return(player8);break;
case 9: return(player9);break;
case 10: return(player10);break;
und in meinem playermanager.h
#ifndef PLAYERMANAGER_H
#define PLAYERMANAGER_H
#include <string>
class playerManager
{
public:
playerManager();
std::string getPlayer(int playerNum);
private:
std::string player1;
std::string player2;
std::string player3;
std::string player4;
std::string player5;
std::string player6;
std::string player7;
std::string player8;
std::string player9;
std::string player10;
};
#endif //PLAYERMANAGER_H
Nun, wenn ich diesen starte, bekomme ich die Fehlermeldung
'player1' was not declared in this scope
Und ich bekomme auch den Fehler
break statement not within loop or switch
und so geht es weiter von Spieler 1 zu Spieler 10.
Ich habe intelized die die Zeichenfolge durch den Aufruf der Datei-reader-Funktion. Ich bin wirklich neu in c++ und ich bin wohl etwas zu tun, nur dummerweise falsch, so wenn jemand helfen könnte bitte.
Vielen Dank im Voraus!
- Das schreit für ein array.
- Hat deine Unterschrift für die definition
playerManager::
? - habe ich gemacht aber wenn ich es mit dem array gibt es das gleiche nicht deklariert int-hsi Umfang Fehler
- Glauben Sie mir, Sie möchten einen container der Spieler, nicht eines einzelnen. Der zweite Fehler ist, weil der Schalter muss
switch{...}
, nichtswitch ...
. Ein Schalter ist auch nicht erforderlich, wenn Sie ein array verwenden, obwohl. Und setzenbreak
direkt nach derreturn
sieht chaotisch in diesem Fall imo. Es ist optional, da gibt es aus der Funktion sowieso. - Post die minimale kompilierbare code veranschaulicht das Problem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ohne codereview Zeug -
hast du durch Zufall implementieren
statt
?
Auch - die
switch
:Beiseite - schrecklich-code. Vorstellen, ich bin Ihr Kunde und Ihnen sagen, ich will 11 Spieler und nicht 10. Was dann?
std::vector<std::string> players; std::string playerManager::getPlayer(int playerNum) { return players[playernum]; }
Könnte ein paar verschiedene Dinge, aber es könnte sein, dass Sie das wollen:
Sagte, mit einem array (oder vector) könnte eine bessere Lösung für dieses.
Du gezeigt hast, den folgenden code in Ihre
getPlayer()
Funktion:Dieser code ist nicht innerhalb einer Funktion. Ich nehme an, Sie haben einfach nicht gepostet paar Zeilen, die zeigen, welche Funktion es ist. Bitte tun Sie dies, so können wir Ihnen weiter helfen.
Auch, da Sie über eine Liste von Spielern, sollten Sie überlegen, lernen, wie man ein array oder einen container aus der STL (wie std::vector).
Statt mit einem Schalter für die verschiedenen Akteure, die versuchen, eine dynamisch reservierten Arrays für die Spieler, so können Sie immer hinzufügen, oder einen Zeiger, und dann halten einen int in den hintergrund zu sagen, wie viele Spieler anwesend sind, oder was auch immer.