Gnafoo
2004-03-28, 12:57:51
So ich habe mal einige Fragen bezüglich der Zugriffsrechte beim Objektorientierten Programmieren (C++).
Also prinzipiell braucht man Zugriffsrechte ja, um anderen Klassen daran zu hindern bestimmte Variablen zu ändern und Funktionen aufzurufen, die die Klasse nur intern benutzen sollte. Sei es, um zu verhindern, dass eine andere Klasse die Daten verändert und das Funktionieren der eigentlichen Klasse verhindert, oder um zu verhindern, dass bestimmte Funktionen ohne den Kontext aufgerufen werden und ungewollte Probleme auftreten.
Insofern ist es ja auch ein Schutz, damit man nicht selber etwas programmiert, das zu Problemen führen kann.
Auch irgendwelche getValue Funktionen, die eine Kopie der eigentlichen Variable zurückgeben, damit man zwar den Wert dieser auslesen, ihn aber nicht verändern kann machen Sinn.
Aber wenn man get- und set-Funktionen zusammen verwendet ist das doch eigentlich nur noch sinnvoll, wenn man dabei irgendeinen Code ausführen muss, der beim setzen dieser Variable irgendwelche Tasks ausführen muss oder andere Variablen updaten muss etc.
Bloß irgendwie hab ich das Gefühl, dass public Variablen möglichst überall vermieden werden. Ich meine, wenn man irgendwo eine get- und set-Funktion in einer Klasse hat, die beide lediglich den Wert einer Variable ändern, warum sollte man diese nicht ganz einfach public machen und sich die Funktionen sparen?
Mal gespannt, was ihr dazu sagt :)
cya DerTod
Also prinzipiell braucht man Zugriffsrechte ja, um anderen Klassen daran zu hindern bestimmte Variablen zu ändern und Funktionen aufzurufen, die die Klasse nur intern benutzen sollte. Sei es, um zu verhindern, dass eine andere Klasse die Daten verändert und das Funktionieren der eigentlichen Klasse verhindert, oder um zu verhindern, dass bestimmte Funktionen ohne den Kontext aufgerufen werden und ungewollte Probleme auftreten.
Insofern ist es ja auch ein Schutz, damit man nicht selber etwas programmiert, das zu Problemen führen kann.
Auch irgendwelche getValue Funktionen, die eine Kopie der eigentlichen Variable zurückgeben, damit man zwar den Wert dieser auslesen, ihn aber nicht verändern kann machen Sinn.
Aber wenn man get- und set-Funktionen zusammen verwendet ist das doch eigentlich nur noch sinnvoll, wenn man dabei irgendeinen Code ausführen muss, der beim setzen dieser Variable irgendwelche Tasks ausführen muss oder andere Variablen updaten muss etc.
Bloß irgendwie hab ich das Gefühl, dass public Variablen möglichst überall vermieden werden. Ich meine, wenn man irgendwo eine get- und set-Funktion in einer Klasse hat, die beide lediglich den Wert einer Variable ändern, warum sollte man diese nicht ganz einfach public machen und sich die Funktionen sparen?
Mal gespannt, was ihr dazu sagt :)
cya DerTod