защищенный член ifstream - PullRequest
       5

защищенный член ifstream

0 голосов
/ 02 декабря 2010

Я близок к завершению моего первого ООП-проекта, происходящего из языка Си.Мне было интересно, какая проблема связана с некоторыми объектами ifstream, которые я использую в базовом классе для открытия файла.После этого я хотел бы использовать тот же поток для дальнейшей работы производными классами.Я определил только этот элемент как защищенный, чтобы я мог достичь того, что в производных классах защищенный нарушает инкапсуляцию (я хотел бы заработать хорошие привычки). Должен ли я определить некоторую функцию-получатель для возврата ссылки на объект потока?Поскольку объекты ifstream не копируются, это может быть проблемой, первое, что я вижу ...

Best, Umut

1 Ответ

1 голос
/ 02 декабря 2010

protected идеально подходит для сохранения инкапсуляции, если для вашего проекта является неотъемлемой частью того, что производные классы имеют те же функции ввода-вывода, что и базовый класс.

Инкапсуляция не означает, что все должно быть private, это означает, что все данные или член кода данного класса видны только минимальному набору пользователей класса для достижения назначенной цели класса.Другими словами, не делайте все public только потому, что это облегчает кодирование.

Вам понадобится только геттер public, если вы хотите показать функцию ввода-вывода базы ипроизводные классы для кодирования вне иерархии.Кстати, возврат ссылки не подразумевает никакой копии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...