ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
582
582
EMPFEHLEN
-
21.06.11 20:28 #1
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.
Viele Tutorials und Artikel zur Programmierung unter Windows mit C++ und C#. Tägliche Updates und Antworten auf eure Fragen:
Win32Easy - Blog
Es würde mich freuen, wenn ihr einen Kommentar postet!
-
22.06.11 08:06 #3
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
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:
Code cpp:1 2
// abc.h extern xyz_type xyz_variable;
Code cpp:1 2
// abc.cpp xyz_type xyz_variable;
GrußCode cpp:1 2 3 4
// hfg.cpp #include "abc.h" ... cout << xyz_variable;
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
22.06.11 17:52 #4
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ß
-
22.06.11 18:51 #6
ok danke habs jetz hinbekommen
*close*
Ich muss wirklich sagen also hier wird einem hammer geil geholfen!Geändert von MSVCplusplus (23.06.11 um 00:01 Uhr) Grund: Einfach so
Ähnliche Themen
-
class'-Typ-Neudefinition' Error
Von Ouglin im Forum C/C++Antworten: 5Letzter Beitrag: 03.05.05, 12:39 -
Neudefinition von variablen
Von mr_d2254 im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 26.02.02, 14:35





Zitieren

Login






