wieso kommt hier ein Fehler
-
Ok, ich hab ein prog geschrieben, indem die main.cpp einen header hat, welcher auf eine Funktion weist( welche in einer anderen cpp ist) und in dem 2 Klassen definiert sind.
Ich greife mit der main funktion auf die strukturen zu, aber auch mit der Funktion aus der anderen cpp.
Nun kommt bei mir der Fehler, ich würde versuchen die gleiche Variable 2 mal zu definieren. das kann ich doch, da es die selbe Variable sein soll. Wo ist der Fehler
main.cpp:
#include "head.h" int main .... x.a=30;
xtra.cpp
#include "head.h" void funk ... x.a=12;
head.h
[cpp]
void funk //Prototypstruct {
int a;
}x;
[cpp]
-
Du musst die Variable in einer .cpp-Datei definieren und nicht in einem Header.
-
nero-ex schrieb:
Ok, ich hab ein prog geschrieben, indem die main.cpp einen header hat, welcher auf eine Funktion weist( welche in einer anderen cpp ist) und in dem 2 Klassen definiert sind.
Ich greife mit der main funktion auf die strukturen zu, aber auch mit der Funktion aus der anderen cpp.
Nun kommt bei mir der Fehler, ich würde versuchen die gleiche Variable 2 mal zu definieren. das kann ich doch, da es die selbe Variable sein soll. Wo ist der Fehler
du musst eine instanz von x erstellen
main.cpp:
#include "head.h" //hier erstellen wir die instanz x EinXObjekt; int main () { EinXObjekt.a=30; return 0; }
xtra.cpp
#include "head.h" void funk() { EinXObjekt.a=12; }
head.h
void funk(); //Prototyp struct { int a; }x; //hier machen wir die instanz überall bekannt extern x EinXObjekt;
-
Was denkst du, was das ist:
struct { int a; }x;
-
Wenn ich die structur aber in eine cpp schreibe, wie krieg ich dann die ganze structur bekannt. extern struct???
-
Du musst der Struktur einen Namen geben:
struct X { } x; //... extern X x;
-
Muss ich die andere cpp datei eigentlich irgendwie in der ersten deklarieren (sowie bei der header)??
-
Nein
-
nero-ex schrieb:
Muss ich die andere cpp datei eigentlich irgendwie in der ersten deklarieren (sowie bei der header)??
Nein.