Was ist der Unterschied zwischen privaten und geschützten Mitgliedern in C++-Klassen?
Andere Antworten lauteten:
- öffentlich - für alle zugänglich.
- protected - zugänglich für abgeleitete Klassen (und Freunde).
- privat - eingeschränkt.
Was ist der Unterschied und welche sollte ich verwenden?
Les C++ Kernrichtlinien gibt den Rat, dass Daten immer privat sein sollten. Ich halte dies für einen guten Rat, da es zu einem "Datensalat" führt, wenn Sie abgeleitete Klassen haben, die auf geschützte Daten zugreifen können. Es macht viel mehr Sinn, Funktionen zu schützen, aber das hängt vom Anwendungsfall ab.
Bei den Funktionen haben Sie die Wahl. Für Daten sollten Sie sie privat machen und bei Bedarf geschützte Zugriffsfunktionen bereitstellen. So haben Sie mehr Kontrolle über die Daten der Klasse.
0 Stimmen
Wenn Sie eine Bibliothek entwerfen, ist jedes geschützte (und nicht private) Mitglied eine Belastung. Wenn Sie bei internen Klassen alles, was nicht öffentlich ist, geschützt machen, sparen Sie Zeit und müssen weniger Klassen überarbeiten, um ein Mitglied von privat in geschützt zu ändern.