Auf Funktion in einer anderen Quelldatei zugreifen
-
Hi!
Wie bereits erwähnt möchte ich auf die Funktion InitLevel(), die sich in der Quelldatei main.cpp befindet, zugreifen. Allerdings aus der Funktion Update() der Klasse CGameManager(CGameManager::Update()). Mein Code lautet:int CGameManager::Update() { switch(m_CurrentLevel) { case 1: if(m_List.begin() == m_List.end()) { InitLevel(2); } break; } }void InitLevel(int level) { ... }Der Compiler erzeugt folgenden Fehler:
gamemanager.cpp(113) : error C2065: 'InitLevel' : nichtdeklarierter Bezeichner
Ich versteh das nicht da die Funktion InitLevel doch normalerweise global sein müsste, dass heißt überall aufrufbar, oder?
Schonmal danke
-
Hallo,
eine Funktion ist immer nur dort aufrufbar, wo eine Deklaration selbiger sichtbar ist. Wenn CGameManager::Update in foo.cpp die Funktion InitLevel aufrufen will, dann muss InitLevel in foo.cpp auch deklariert worden sein. Das erreicht man normalerweise durch eine passende Headerdatei. D.h. du packst die Deklaration von InitLevel in einen Header (z.B. InitLevel.h), die Definition in eine cpp-Datei (z.B. InitLevel.cpp) und inkludierst den Header dann überall dort, wo du die Funktion InitLevel aufrufen willst (z.B. in foo.cpp).
-
super, danke!