privateè preferito per i dati dei membri. I membri nelle classi C ++ sono privatepredefiniti.
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.
privatenon è 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 publice protected. Classi generate da Visual Studio Wizard hanno un brutto mix di protected, publice privatemembri. Ma c'è qualche logica nelle stesse classi MFC.
I membri come lo SetWindowTextsono publicperché spesso è necessario accedere a questi membri.
Membri come OnLButtonDowngestiscono 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 publicper impostazione predefinita. Le strutture sono generalmente utilizzate solo per dati, non per metodi, pertanto la publicdichiarazione è considerata sicura.