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
декларування вважається безпечним.