verschiedene Variablenwerte in verschiedenen Klassen
-
Hallo Leute,
ich habe mal folgende Frage:
Wenn ich von einer Klasse auf eine Variable in einer anderen Klasse zugreife, hat diese Variable einen anderen Wert als wenn ich direkt aus der main.cpp darauf zugreife.
Woran liegt das?Also hier am Codebeispiel:
//main.cpp #include "klasse_1.h" #include "klasse_2.h" int main() { klasse_1 c; c.i = 75; std::cout << c.i << std::endl << std::endl; klasse_2 d; d.c.i = 96; std::cout << d.c.i << std::endl << std::endl; std::cout << c.i << std::endl; return 0; }In "klasse_1" selbst passiert nichts weiter, als dass in der .cpp im Konstruktor i auf 5 gesetzt wird.
Und die "klasse_2.h" sieht folgendermaßen aus:
#include "klasse_1.h" class klasse_2 { public: klasse_2(); klasse_1 c; };Der Output sieht so aus:
75 96 75Was ja bedeutet, dass es quasi 2 verschiedene variablen i in "klasse_1" gibt?!
Woran liegt das?
Ich greife doch eigentlich nur auf die Variable in der Klasse zuVielen Dank
JanK411
-
ja es existieren zwei instanzen der klasse "
klasse_1". eine ist c und eine ist innerhalb von d als member.
-
Das Objekt der klasse_1 in der main und das Objekt in dem Objekt der klasse_2 sind komplett verschieden!
Die gehören wie zwei int Variablen nicht zueinander, weswegen nichts weiter passiert, wenn du nur ein Objekt änderst. Was du suchst sind static member variables (Google Stichwort!).
-
Okay, klingt verständlich
Was du suchst sind static member variables
Danke erstmal, werde ich machen

Edit: Genau das war es, was ich gebraucht habe!
Und nochmals vielen Dank!