privateє кращим для даних членів. Учасники класів C ++ privateза замовчуванням.
publicє кращим для функцій членів, хоча це питання думки. Принаймні деякі методи повинні бути доступними. publicє доступним для всіх. Це найбільш гнучкий варіант і найменш безпечний. Користуватися ними може будь-хто, і будь-хто може ними неправильно користуватися.
privateвзагалі недоступний. Ніхто не може використовувати їх поза класом, і ніхто не може ними зловживати. Навіть у похідних класах.
protectedє компромісом, оскільки його можна використовувати у похідних класах. Коли ви виходите з класу, ви добре розумієте базовий клас, і ви обережні, щоб не зловживати цими членами.
MFC - це обгортка C ++ для API Windows, він вважає за краще publicіprotected . Класи , створювані Visual Studio Wizard мають потворну суміш protected, publicі privateчленів. Але в самих класах MFC є певна логіка.
Члени, такі як SetWindowText , publicтому що вам часто потрібно звертатися до цих членів.
Члени, такі як OnLButtonDown , обробляють сповіщення, отримані у вікні. До них не слід звертатися, тому вони є protected. Ви все одно можете отримати доступ до них у похідному класі, щоб змінити ці функції.
Деякі учасники повинні робити нитки та петлі повідомлень, до них не можна звертатись та не змінювати, тому вони оголошуються як private
У структурах C ++ учасники publicза замовчуванням. Структури зазвичай використовуються лише для даних, а не для методів, тому publicдекларування вважається безпечним.