Декілька запитань про методи доступу в C ++ було задано на SO, але жоден не зміг задовольнити мою цікавість до цього питання.
Я намагаюся уникати доступу, коли це можливо, тому що, як Stroustrup та інші відомі програмісти, я вважаю клас з багатьма з них ознакою поганого ОО. У C ++ я в більшості випадків можу додати більше відповідальності до класу або використовувати ключове слово friend, щоб уникнути їх. Однак у деяких випадках вам дійсно потрібен доступ до певних учнів.
Є кілька можливостей:
1. Не використовуйте аксесуари взагалі
Ми можемо просто зробити відповідні змінні-члени загальнодоступними. У Java це заборонено, але, схоже, це нормально для спільноти C ++. Однак мене трохи турбують випадки, коли слід повернути явну копію або посилання на об'єкт лише для читання (const), це перебільшено?
2. Використовуйте методи отримання / встановлення в стилі Java
Я не впевнений, що це взагалі з Java, але я маю на увазі це:
int getAmount(); // Returns the amount
void setAmount(int amount); // Sets the amount
3. Використовуйте об’єктивні методи отримання / встановлення в стилі С
Це трохи дивно, але очевидно все частіше:
int amount(); // Returns the amount
void amount(int amount); // Sets the amount
Щоб це працювало, вам доведеться знайти інше ім'я для вашої змінної-члена. Деякі люди додають підкреслення, інші додають "m_". Мені теж не подобається.
Який стиль ви використовуєте і чому?