ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
193
193
EMPFEHLEN
-
Hallo Community,
ich hab folgendes Problem in c++:
ich habe mehrere .cpp dateien und 3 davon müssen auf eine Header Datei zugreifen, in der sich ein struct mit 2 float Variablen befindet
#ifndef datenh_h
#define datenh_h
using namespace std;
struct daten{
float var1;
float var2;} dat}
#endif
So, wenn ich diese Header jetzt in die .cpp Dateien mit #include "datenh.h" einbinde bekomm ich für jede cpp Datei die auf die Header zugreift die Fehlermeldung:
error LNK2005: "struct daten dat" (?dat@@3Udaten@@A) ist bereits in 2projekt.obj definiert.
...2projekt.cpp ist eine von den cpp datein die diese Variablen brauchen.
und die Fehlermeldung
"Mindestens ein mehrfach definiertes Symbol gefunden."
Wie schaffe ich, dass die Fehlermeldung vermieden wird, bzw was bedeutet sie?
Wenn ich anstelle der struct normale Variablen nehme, sie nur in die haupt cpp datei einbinde und alle weiteren cpp-Dateien auf diese Variablen via extern float var1... zugreifen , geht es, leider klappt der "extern" befehl für meine struct variablen irgendwie nicht.
-
Hi und Willkommen bei tutorials.de

Zuerst einmal: Bitte verwende in Zukunft die Codetags für Codeteile.
Für C und C++: [cpp]...[/cpp]
Und das "}" hinter dem dat ist hoffentlich in Wirklichkeit ein ";", oder?
Zum eigentlichen Problem: Du mischt hier zwei Sachen.
Einerseits legst du fest, wie die Struktur daten auszusehen hat (mit den zwei floats drinnen).
Das ist OK.
Andererseits legst du in der Headerdatei auch gleich eine Variable dat an.
Und das gehört aus der Headerdatei raus.
Weil du diese eine Variable ja in mehreren cpp-Dateien verwenden willst, musst du
1) dat in der Headerdatei mit extern anlegen.
Also das
könnte man zuerst auch so schreiben:Code cpp:1 2 3 4 5
struct daten { float var1; float var2; } dat;
Und da kommt jetzt ein extern wie folgt dazu:Code cpp:1 2 3 4 5 6
struct daten { float var1; float var2; }; daten dat;
Code cpp:1 2 3 4 5 6
struct daten { float var1; float var2; }; extern daten dat;
2) legst du in einer (nur einer) cpp-Datei die Variable wirklich an, also einfach mit "daten dat", ohne extern.
Gruß
-
Danke, scheint zu funktionieren, habs "daten dat;" jetzt nur einmal vor der int main() global angelegt. Danke für die schnelle Hilfe******
Ähnliche Themen
-
Pointer in Struct der auf ein Struct Array zeigt?
Von hanni6al im Forum C/C++Antworten: 1Letzter Beitrag: 10.12.08, 12:50 -
C - struct pointer in struct
Von nero-15 im Forum C/C++Antworten: 4Letzter Beitrag: 12.11.08, 18:31 -
C struct to C# struct & vice versa
Von visus im Forum C/C++Antworten: 2Letzter Beitrag: 01.08.07, 08:32 -
css extern
Von WiZdooM im Forum CSSAntworten: 2Letzter Beitrag: 15.07.05, 16:19 -
struct of c:\
Von excSchaKaL im Forum C/C++Antworten: 7Letzter Beitrag: 27.10.04, 15:02





Zitieren

Login






