Statische Member-Array in C++

Ich habe eine statische member-array in die Klasse GTAODV.

static int numdetections[MAXNODES];

Jedoch, wenn ich versuche, Zugriff auf das array innerhalb der Klasse Methoden (Beispiele unten),

 numdetections[nb->nb_addr]++;
 for(int i=0; i<MAXNODES; i++) if (numdetections[i] != 0) printf("Number of detections of %d = %d\n", i, numdetections[i]);

der linker einen Fehler während der Kompilierung:

gtaodv/gtaodv.o: In function `GTAODV::command(int, char const* const*)':
gtaodv.cc:(.text+0xbe): undefined reference to `GTAODV::numdetections'
gtaodv.cc:(.text+0xcc): undefined reference to `GTAODV::numdetections'
gtaodv/gtaodv.o: In function `GTAODV::check_malicious(GTAODV_Neighbor*)':
gtaodv.cc:(.text+0x326c): undefined reference to `GTAODV::numdetections'
gtaodv.cc:(.text+0x3276): undefined reference to `GTAODV::numdetections'
collect2: ld returned 1 exit status

Warum geschieht dies?

  • Weil dein linker nicht wissen, die definition von numdetections. Wo sind Sie Sie diese variable verwenden, und wo ist die definition?
  • Ich habe numdetections in der Klasse GTAODV, und ich bin mit es in der GTOADV member-Funktionen.
  • poste bitte den code...
  • Geben Sie das code-Beispiel. Wo genau, das Sie definiert haben numdetections?
  • Sie sagte, Sie definiert numdetections in der Klasse GTAODV - tatsächlich, Sie "erklärt" es. Die definition fehlt, das ist, warum Sie werden immer Linker-Fehler. Auch, Sie bearbeitet die ursprüngliche Frage also nun die Antworten' Kontext fehlt.
InformationsquelleAutor vigs1990 | 2012-04-22
Schreibe einen Kommentar