Variablen einer Instance inerhalb einer 2.Instance der selben Klasse ansprechen
-
Hallo zusammen,
Ich programmier jetzt seit einiger Zeit mit C++ und befasse mich nun mit Klassen und Objekten.
Nun mein Problem:Ich habe ein Klasse mit dem Namen cl_npc erstellt.
Von dieser habe ich 2 Instancen erstellt.
Die Instancen besitzen die Variablen x und y (public)
Jetzt möchte ich von einer Methode die in der ersten Instance (von main aus)
aufgerufen wird auf die Variable x der 2.Instance zugreifen.Ich hab bereichts alles versucht und auch ewig nach einer Lösung gegoogelt
aber nichts sinnvolles gefunden
Ist das überhaupt vorgesehen das man auf die Variablen zugreifen kann?
Oder mach ich da was grundlegend falsch?Danke schon mal im voraus

mfg. benny93
-
Klingt komisch. Zeig mal Code.
Prinzipiell existieren Variablen aber unabhängig voneinander. Du kannst also nicht einfach von einer Method eines Objektes auf ein anderes Objekt zugreifen. Das muss erst irgendwie bekannt gemacht werden.
Nehmen wir 2 Autos:
class Auto { private: bool crashed; public: Auto() : crashed(false) {} void crashInto(Auto& other) { crashed=true; other->crashed=true; } bool hasCrashed() const { return crashed; } }; int main() { Auto meins; Auto deins; Auto seins; meins.crashInto(deins); if(meins.hasCrashed()) { cout<<"Mein Auto ist 'putt :(\n"; } if(deins.hasCrashed()) { cout<<"Dein Auto ist 'putt :)\n"; } if(seins.hasCrashed()) { cout<<"Sein Auto ist 'putt :o\n"; } }Hier greift "meins" auf "deins" zu, indem ich in crashInto deins als Parameter übergebe. Aber einfach so, ohne dass beide Variablen sich kennen, ist es natürlich auch nicht möglich dass sie sich beeinflussen. "seins" crashed daher nicht.
-
Danke für die schnelle Antwort.
Habs jetzt hin bekommen
Noch eine Frage:
Ist es sinnvoll möglichst viele Methoden in die Objekte zu "verlagern" oder
ist es besser die ganzen Funktionen in der main zu schreiben?Hab leider keine Ahnung was da programmiertechnisch auch bei komplexeren Programmen besser währe

mfg. benny93
-
Es wäre besser alle Funktionen in die Objekte zu schreiben, sonst verliert man bei größeren Programmen den Überblick und es können schlecht mehrere Programmierer miteinander arbeiten.
-
benny93 schrieb:
Hab leider keine Ahnung was da programmiertechnisch auch bei komplexeren Programmen besser währe

Viele kleine Einheiten.
Eine Funktion soll 10 Zeilen nicht ueberschreiten und von keiner globalen Variable abhaengig sein.