PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ LNK2001 Problem



Bismarck_1
17.07.2010, 15:10
#include <iostream>
#include <process.h>

using namespace std;

class CInstanz
{
public:
static int a;
static void scan(void *);
};

void CInstanz::scan(void *)
{
for(a; a<5; a++)
{
cout << "Zahl: " << a << endl;
}
}

int main()
{
CInstanz pThread;
_beginthread( &pThread.scan, 0, NULL);
system("pause");
return 0;
}Die Fehlermeldungen:


error LNK2001: Nicht aufgelöstes externes Symbol ""public: static int CInstanz::a" (?a@CInstanz@@2HA)".
fatal error LNK1120: 1 nicht aufgelöste externe Verweise. Ich weis wirklich nicht wie ich dieses Problem beheben kann, weis einer eine Lösung?

(Bin C++ Beginner)

AlterHacker
17.07.2010, 15:30
Hey,
hatten wir nicht mit
_beginthread( &pThread::scan, 0, NULL);

letztes mal Erfolg ?

blackberry
17.07.2010, 15:33
Daran liegt es nicht...
Das Problem ist, dass die Deklaration eines statischen "Members" in der Memberliste keine Definition ist.
Der Unterschied ist der, dass bei der Deklaration dem Compiler nur gesagt wird, dass dieses Attribut existiert, jedoch kein Speicher oder ähnliches vergeben wird.

Das musst du also noch nachtragen.
int CInstanz::a;
Nach der Klassendefinition und das Problem sollte gelöst sein.

Bismarck_1
17.07.2010, 16:50
@BlackBerry (http://free-hack.com/member.php?u=43591)

THX. Hat funktioniert.