privatejest preferowany dla danych członka. Członkowie klas C ++ są privatedomyślnie.
publicjest preferowany dla funkcji składowych, choć jest to kwestia opinii. Przynajmniej niektóre metody muszą być dostępne. publicjest dostępny dla wszystkich. Jest to najbardziej elastyczna opcja i najmniej bezpieczna. Każdy może z nich korzystać i każdy może ich niewłaściwie używać.
privatejest w ogóle niedostępny. Nikt nie może ich używać poza klasą i nikt nie może ich nadużywać. Nawet w klasach pochodnych.
protectedjest kompromisem, ponieważ można go stosować w klasach pochodnych. Kiedy wywodzisz się z klasy, dobrze rozumiesz klasę podstawową i uważasz, aby nie nadużywać tych członków.
MFC to opakowanie C ++ dla Windows API, preferuje publici protected. Klasy generowane przez Visual Studio Kreator mają brzydki mieszankę protected, publicoraz privateczłonków. Ale istnieje pewna logika dla samych klas MFC.
Członkowie tacy SetWindowTextsą, publicponieważ często trzeba uzyskać do nich dostęp.
Członkowie, na przykład OnLButtonDown, obsługują powiadomienia otrzymane przez okno. Nie powinny być one dostępne, dlatego są protected. Nadal możesz uzyskać do nich dostęp w klasie pochodnej, aby zastąpić te funkcje.
Niektórzy członkowie muszą wykonywać wątki i pętle wiadomości, nie należy do nich uzyskiwać dostępu ani nadpisywać, więc są zadeklarowani jako private
W strukturach C ++ członkowie są publicdomyślnie. Struktury są zwykle używane tylko do danych, a nie do metod, dlatego publicdeklaracja jest uważana za bezpieczną.