private
è preferito per i dati dei membri. I membri nelle classi C ++ sono private
predefiniti.
public
è preferito per le funzioni membro, anche se è una questione di opinione. Almeno alcuni metodi devono essere accessibili. public
è accessibile a tutti. È l'opzione più flessibile e meno sicura. Chiunque può usarli e chiunque può abusarli.
private
non è affatto accessibile. Nessuno può usarli al di fuori della classe e nessuno può abusarne. Nemmeno nelle classi derivate.
protected
è un compromesso perché può essere utilizzato nelle classi derivate. Quando provieni da una classe, hai una buona comprensione della classe di base e stai attento a non abusare di questi membri.
MFC è un wrapper C ++ per l'API di Windows, che preferisce public
e protected
. Classi generate da Visual Studio Wizard hanno un brutto mix di protected
, public
e private
membri. Ma c'è qualche logica nelle stesse classi MFC.
I membri come lo SetWindowText
sono public
perché spesso è necessario accedere a questi membri.
Membri come OnLButtonDown
gestiscono le notifiche ricevute dalla finestra. Non dovrebbero essere accessibili, quindi lo sono protected
. È comunque possibile accedervi nella classe derivata per sovrascrivere queste funzioni.
Alcuni membri devono eseguire thread e loop di messaggi, non è necessario accedervi o sostituirli, quindi vengono dichiarati come private
Nelle strutture C ++, i membri sono public
per impostazione predefinita. Le strutture sono generalmente utilizzate solo per dati, non per metodi, pertanto la public
dichiarazione è considerata sicura.