private
jest preferowany dla danych członka. Członkowie klas C ++ są private
domyślnie.
public
jest preferowany dla funkcji składowych, choć jest to kwestia opinii. Przynajmniej niektóre metody muszą być dostępne. public
jest 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ć.
private
jest 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.
protected
jest 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 public
i protected
. Klasy generowane przez Visual Studio Kreator mają brzydki mieszankę protected
, public
oraz private
członków. Ale istnieje pewna logika dla samych klas MFC.
Członkowie tacy SetWindowText
są, public
ponieważ 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ą public
domyślnie. Struktury są zwykle używane tylko do danych, a nie do metod, dlatego public
deklaracja jest uważana za bezpieczną.