neudefinition

FSA

Erfahrenes Mitglied
Hallo!

Ich habe ein problem...

... ich habe ein projekt mit zwei .cpp dateien die beide die selbe variable verwenden (CFirstPersonCamear g_Camera)

nun hab ich die deklaration der variable in die header datei cam.h gesetzt und von den anderen 2 .cpp dateien entfernt

bei den 2 .cpp datein noch #include "cam.h" eingefügt

nun sagt der compiler:
CFirstPersonCamera g_Camera Neudefinition in cam.h
aber die variable ist doch nur einmal in der header, allerdings wird die header zweimal includiert!

Ich weis nett was ich machen soll pls Help
Danke im Voraus
 
Ja, behalte im Kopf, dass Header schlicht und einfach kopiert werden. Damit hast du die Variable in zwei C++-Dateien definiert, was mehr als 1 Mal ist. Zielführend ist hier das Keyword extern.
 
Hi.

Was Muepe32 sagen wollte:

In Headerdateien gehören keine Definitionen.

In Headerdateien gibt man ausschließlich (Vorwärts-) Deklarationen an.

Variablen dürfen mehrfach deklariert werden.

Variablen müssen irgendwo definiert werden.

Also:
C++:
// abc.h
extern xyz_type xyz_variable;
C++:
// abc.cpp
xyz_type xyz_variable;
C++:
// hfg.cpp
#include "abc.h"
...
cout << xyz_variable;
Gruß
 
Danke erstma

@deepthroat
ok aber ich will die variable ja in 2 .cpp datein verwenden aber es soll nur eine variable sein!
Bei dir sind es ja zwei variablen oder hab ich da was nich kapiert?
 
Hi

deepthroats Lösung passt da schon.

Wenn du die Variable in jeder cpp-Datei anlegen würdest, hast du mehrere verschiedene.
Wenn du es nur in einer cpp-Datei machst, bekommst du in den anderen Compilerfehler wegen unbekanntem Variablennamen.

Deshalb in einer cpp wirklich anlegen und in den anderen durch extern bekannt machen, dass es diese Variable gibt und sie in einer anderen cpp angelegt wurde.

Wie von deepthorat gezeigt kann das extern natürlich auch in einen Header und von dort aus in mehrere cpp-Dateien eingebunden werden, ohne die Zeile jedesmal neu zu schreiben.

Gruß
 
ok danke habs jetz hinbekommen
*close*

Ich muss wirklich sagen also hier wird einem hammer geil geholfen!
 
Zuletzt bearbeitet:
Zurück