private
wird für Mitgliederdaten bevorzugt. Mitglieder in C++-Klassen sind private
standardmäßig.
public
wird für Mitgliederfunktionen bevorzugt, obwohl dies Ansichtssache ist. Zumindest einige Methoden müssen zugänglich sein. public
ist für alle zugänglich. Sie ist die flexibelste und sicherste Option. Jeder kann sie nutzen, und jeder kann sie missbrauchen.
private
ist überhaupt nicht zugänglich. Niemand kann sie außerhalb des Unterrichts verwenden, und niemand kann sie missbrauchen. Nicht einmal in abgeleiteten Klassen.
protected
ist ein Kompromiss, weil es in abgeleiteten Klassen verwendet werden kann. Wenn Sie von einer Klasse ableiten, haben Sie ein gutes Verständnis der Basisklasse, und Sie sind vorsichtig, um diese Mitglieder nicht zu missbrauchen.
MFC ist ein C++-Wrapper für die Windows-API, es bevorzugt public
y protected
. Klassen, die vom Visual Studio-Assistenten erzeugt werden, haben eine hässliche Mischung aus protected
, public
y private
Mitglieder. Aber es gibt eine gewisse Logik in den MFC-Klassen selbst.
Mitglieder wie SetWindowText
sind public
weil Sie oft auf diese Mitglieder zugreifen müssen.
Mitglieder wie OnLButtonDown
behandelt die vom Fenster empfangenen Benachrichtigungen. Auf sie sollte nicht zugegriffen werden, daher sind sie protected
. Sie können in der abgeleiteten Klasse weiterhin auf diese Funktionen zugreifen und sie außer Kraft setzen.
Einige Mitglieder haben mit Threads und Nachrichtenschleifen zu tun, auf sie sollte nicht zugegriffen werden oder sie sollten nicht überschrieben werden, daher werden sie als private
In C++-Strukturen sind die Mitglieder public
standardmäßig. Strukturen werden in der Regel nur für Daten und nicht für Methoden verwendet, daher public
Deklaration als sicher gilt.
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.