Warum Member von Klassen Private?

Rene42

Erfahrenes Mitglied
Hi Leute,

ich beschäftige mich nun seit einiger Zeit mit C++ in 21 Tagen von Makt und Technik.

eigentlich komme ich gut zu recht nur taucht nun eine unbeantwortete Frage auf:

Sie schreiben, dass wenn ich eigen Klassen erstelle die Eigenschaften der Klasse Private machen soll und dann für das aufrufen und lesen Funktionen schreiben soll, statt direkt auf die Eigenschaften als Public zuzugreifen. Kann mir hier jemand den Sinn erläutern. Wird in dem Buch nichts drüber gesagt und der Quelltext nimmt dadurch ganz schön zu.

Gruß Rene
 
Hallo,

welchen Sinn das hat habe ich auch nie ganz verstanden aber ich glaube es geht darum, dass die Funktion falls erforderlich auch andere Daten der Klasse aktualisieren kann und z.B. Handles und Pointer nicht auf einen falschen Wert gesetzt werden können.

Was genau das jetzt soll wer wirklich interessant zu hören, auch wenn ich mich jetzt sowieso schon daran gewöhnt habe es so zu machen.

Gruß Anfänger.
 
Wie Anfänger schon richtig gesagt hat, man hat mehr Kontrolle und es dient der Übersicht. Du kannst bei Setter-Methoden den Parameter auf ungültige Werte überprüfen , die Zuweisung dann ablehnen und/oder Exceptions werfen. Ein fremder der sich deine Klasse ansieht, dem interessiert möglicherweise deine interne Datenstruktur nicht und guckt sich dementsprechend nur die von außen aufrufbaren Methoden an (incl. setter und getter).
Das sich der Quelltext dadurch aufbläht spielt wirklich eine untergeordnete Rolle ;)
Da diese Methoden meist relativ kurz sind entscheidet der Compiler sie womöglich als "inline" zu kompilieren was soviel bedeutet wie eine Ersetzung des Methodeninhalts mit dem Methodenaufruf. Nur so nebenbei :)

mfg
 
Zurück