Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

LuGo

Frischling

  • »LuGo« ist der Autor dieses Themas

Beiträge: 54

Wohnort: Attendorn im schönen Sauerland

Beruf: Schüler

  • Private Nachricht senden

1

06.01.2012, 12:59

Lnk2001

Hallo zusammen,

ich habe mal wieder ein Problem.

Ich habe eine Klasse erstellt: CGame, die soll nur eine Instanz besitzen. Daher deklariere ich alles static. Ich will nun eine Abfrage einbauen, wieviele Spieler vorhanden sind. Wenn ich das dann versuche auszuführen, spuckt der Compiler den Fehler LNK2001 aus. Hier der Quellcode:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
class CGame 
{public: 
CGame(void);~CGame(void); 
static int PrepareGame ();int RunGame (); 
int EndGame ();short NumberofPlayer(); 
friend class CPlayer;private: 
bool GamePrepared; 
static short NumberPlayers; 
};


C-/C++-Quelltext

1
2
3
4
short CGame::NumberofPlayer() 
{std::cout << "Wie viele Spieler sind es?" << endl; 
std::cin >> NumberPlayers;return NumberPlayers; 
}

Und hier die Fehlerausgabe




Zitat


1>Game.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""private: static short CGame::NumberPlayers" (?NumberPlayers@CGame@@0FA)".

1>J:\Eigene Dateien\Programmierung\Projekte\Ohne Furcht und Adel\Debug\Ohne Furcht und Adel.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.



MfG LuGo

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

06.01.2012, 13:06

Du hast deine statische Variable nirgendwo definiert. Du brauchst in irgendeinem .cpp File sowas hier:

C-/C++-Quelltext

1
static short CGame::NumberPlayers;


Grundsätzlich würde ich mir aber überlegen ob das so ein guter Ansatz ist. Wenn sowieso alles static ist, wofür dann überhaupt eine Klasse? Du brauchst nur eine Instanz? Dann mach doch eben einfach nur eine Instanz...

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (06.01.2012, 13:12)