Re: Re: Auf Daten einer anderen Klasse zugreifen
Hi,
Subject: Re: Auf Daten einer anderen Klasse zugreifen On Wed, 26 Mar 2003, Andre Heine wrote:
Am Mittwoch, 26. März 2003 20:20 schrieb David Haller:
Was spricht eigentlich gegen eine globale Variable (oder eine Instanz einer Klasse)?
AFAIK, das im OOP die Daten Kapseln will :)
Variablen sollten, demnach über Methode zugänglich sein.
Aehm, naja, das halte ich fuer oft ueberfluessig. Accessoren halte ich fuer nur sinnvoll, wenn es gute Gruende gibt, die Variablen "private", "protected" oder "read only" zu halten (z.B. weil etwas "nebenbei" verwaltet werden muss, oder konkurrierende Zugriffe)...
Dieses "blinde"
get_foo() { return this.foo; } set_foo(X &y) { this.foo = y; }
das halte ich schlicht fuer nervig und ueberfluessig...
So ist aber IMHO der Weg in der OOP...
Ich denke, das es auch Gründe für globale Variablen gibt...
Z.B. globale "Flags"/"Optionen" -- oder eben auch einen Dateinamen. Holger hat bisher noch zu wenig verraten, um eine Empfehlung geben zu koennen, welche Variante nun sinnvoller ist.
Je nach Anwendung ist eben eine globale Variable (oder Klassen-Instanz) oder eben eine lokale geeigneter...
ACK , Kommt darauf an, was genau gemacht werden soll" :)
Und ich wollte dies einfach nur erwaehnen, globale Variablen sind nicht immer "boese" ;)
Das wollte ich auch nicht ausdrücken... Ich nutze globale Variablen meist mit C und Modulen. Ciao Andre
Ich habe in QT zwei topLevelWindows also 2 verschiedene Klassen. Also keines ist ein child des Anderen.
In der einen will ich dem QString Dateiname einen Wert zuweisen.
In der anderen will ich dann auf diesen Dateinamen zugreifen.
Also vielen vielen Dank für die vielen Tipps. (3X vielen in einem Satz? Was ist denn das für Deutsch?) Für mich kommt "leider" glaube ich nur eine globale Variable in Frage. Der Wert, den ich verwenden will wird nämlich nicht einfach durch einen Funktionsaufruf festgelegt. Es ist erst eine Benutzeraktion notwendig. Deswegen kann ich keine neue Instanz der Klasse1 erstellen, da ja dann dieser Variable noch kein Wert wurde. Ich brauche also ein und die selbe Variable mit einem Wert, die vom Benutzer bestimmt wurde. Habe also mittels einer globalen Variable mein Problem gelöst. Danke für die Hilfe, Holger -- Es gibt soviel Schönheit auf der Welt, dass ich sie fast nicht ertragen kann. --???
participants (2)
-
Andre Heine
-
Holger Macht