Pure Verzweiflung seit 3 Stunden bei Statischer Variabel
-
Guten Tag an Alle.
Ich bin neu in diesem Forum, doch arbeite schon bisschen längers mit C++.
Doch nun scheitere ich seit Stunden an einer Fehlermeldung und weiss nicht mehr weiter, durchforschte sogar extra nochmal ein Tutorial (http://www.cprogramming.com/tutorial/statickeyword.html) doch brachte auch nichts.
Folgender Code:class TaskBar { public: static Task* curAct; static void Activate(Task *t) { TaskBar::curAct=t; } ...erscheint folgende Fehlermeldung:
F:\DOKUME1\kog\LOKALE1\Temp/ccQceqE3.o:main.cpp:(.text+0x15dc): undefined reference to
TaskBar::curAct' F:\\DOKUME~1\\kog\\LOKALE~1\\Temp/ccQceqE3.o:main.cpp:(.text$_ZN7TaskBar8ActivateEP4Task[TaskBar::Activate(Task*)]+0x7): undefined reference toTaskBar::curAct'
collect2: ld returned 1 exit statusIch habe schon versucht TaskBar:: wegzunehmen, oder aus der Main die curAct Variabel vorzudefinieren. Alles gescheitert, dann noch ein static int test; ausprobiert, genaue der gleiche Fehler.
die Klasse dient nur als verschönerung, damit alles Compakt in einer Klasse ist.Ich hoffe Ihr habt mir einen Rat.
Einen schönen abend.
-
Ja, dir fehlt noch die Definition, sagt ja auch die Fehlermeldung.
class TaskBar { public: static Task* curAct; // Das ist nur eine Deklaration! Definition fehlt. static void Activate(Task *t) { TaskBar::curAct=t; }Da fehlt noch sowas:
Task* TaskBar::curAct; // Defintion (ohne static!)
-
Ach du scheisse!
Ich habe schonmal versucht am ende der Datei Task* TaskBar::curAct=NULL;
Kamen auch wieder fehlermeldungen weil man nicht einfach so Definieren kann und in der main Funktion klappte es auch nicht mit =NULL...
aber einfach Task* TaskBar::curAct; hatte ich nie probiert..Ich bin dir wirklich dankbar ... Mein kollege hatte schon recht, hier wird einem geholfen
