private
est préféré pour les données des membres. Les membres des classes C ++ sont private
par défaut.
public
est préféré pour les fonctions de membre, bien que ce soit une question d'opinion. Certaines méthodes au moins doivent être accessibles.public
est accessible à tous. C'est l'option la plus flexible et la moins sûre. Tout le monde peut les utiliser et tout le monde peut en abuser.
private
n'est pas accessible du tout. Personne ne peut les utiliser en dehors de la classe et personne ne peut en abuser. Pas même dans les classes dérivées.
protected
est un compromis car il peut être utilisé dans des classes dérivées. Lorsque vous dérivez d'une classe, vous avez une bonne compréhension de la classe de base et veillez à ne pas abuser de ces membres.
MFC est un wrapper C ++ pour l'API Windows, il préfère public
et protected
. Les classes générées par Visual Studio Assistant ont un mélange laid protected
, public
etprivate
les membres. Mais il y a une certaine logique pour les classes MFC elles-mêmes.
Les membres tels que SetWindowText
sont public
parce que vous devez souvent accéder à ces membres.
Des membres tels que OnLButtonDown
, gèrent les notifications reçues par la fenêtre. Ils ne devraient pas être accessibles, donc ils le sont protected
. Vous pouvez toujours y accéder dans la classe dérivée pour remplacer ces fonctions.
Certains membres doivent faire des threads et des boucles de messages, ils ne doivent pas être accessibles ou remplacés, ils sont donc déclarés comme private
Dans les structures C ++, les membres sont public
par défaut. Les structures sont généralement utilisées pour les données uniquement, pas pour les méthodes, la public
déclaration est donc considérée comme sûre.