Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/64: Рейтинг темы: голосов - 64, средняя оценка - 4.69
0 / 0 / 1
Регистрация: 18.03.2017
Сообщений: 34
1

Зачем нужна инкапсуляция?

07.09.2017, 19:20. Показов 12922. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Зачем, например, нужно писать переменную в private поле, и обращаться к нему с помощью функций в public поле?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.09.2017, 19:20
Ответы с готовыми решениями:

Зачем нужна перестановка?
для чего нужна перестановка в этой программе? #include <stdio.h> #include <ctype.h> #include...

Зачем нужна конструкция else if
Для чего используется конструкция else if. В чем различие между просто if

Зачем нужна функция GetPrivateProfileString?
Объяснить "кусочек" кода)), из то го что есть я понял что с начало в комбобокс добавляются значения...

Зачем нужна перегрузка операторов?
Зачем нужна перегрузка ">> ", "<<", "+" ,"==" и так дальше .. а то начал читать пратта и ничего...

20
51 / 149 / 33
Регистрация: 29.06.2019
Сообщений: 1,428
19.02.2021, 07:03 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от DrOffset Посмотреть сообщение
Инкапсуляция - это о снижении сложности.
чисто практически, я бы выделила для себя возможность Управления ресурсами... - супер-полезную возможность создавать объекты Конструктором и удалять Деструктором... и всю рутину по этим непростым действиям засовывать в класс в любом удобном виде (хоть в private сектор, хоть в public) и настраивать корректную реализацию этих действий, как и др. методов работы с объектами (хоть на куче, хоть на стэке - есть различия)... так вот зачем все эти детали работы с памятью или др. ресурсами выносить наружу и делать небезопасный код?.. - конечно, лучше всё опасное спрятать и превращение в безопасное спрятать туда же...
я вот не люблю сухие цитаты из книжек и безаппеляционность принуждения к их использованию (всё равно не поможет - применять без пользы, даже если с т.н. "пониманием" - уродство ведь получится, - да и книги бывают разные) -- но практическую применимость любых новых понятий ценю намного больше...
в моём кодинге вижу Ппрактическую полезность применения инкапсуляции сугубо и прежде всего для целей Управления ресурсами... там, где этого не надо, - можно обойтись и простым процедурным стилем кодинга... имхо
p.s.
Цитата Сообщение от actionpattern Посмотреть сообщение
объект инкапсулирует поведение
вижу смысл Полиморфизма - в возможности работать с разными типами (т.к. яз. C++ - строго типизирован)...
вижу смысл Наследования - decoupling (уменьшение связанность и переориентация зависимостей - e.g. в Dependency Inversion применении, - где надо вынести в Общую Политику к.-л. действие различных классов - для ослабления зависимостей между классом и базовым поведением - чтобы можно было ещё что-нибудь унаследовать от базового в будущем, - т.е. для облегчения сопровождения в данном случае, и для уменьшения количества кода во вторую очередь)
-- вот и вся практическая выгода ООП для меня в С++...
(в др. более высокоуровневых языках польза при написании распределённых приложений)
0
19.02.2021, 07:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2021, 07:03
Помогаю со студенческими работами здесь

Зачем нужна функция cin.ignore()?
Объясните пожалуйста почему если убрать из кода cin.ignore(); , в 55 строке присваиваем n = 1, оно...

Зачем нужна ссылка в конструкторе копирования
Вопрос такой, Зачем нужна ссылка в конструкторе копирования? Почему не передавать напр. по...

Зачем нужна строчка в set методе
Кто мог бы объяснить строчку 9 courseName = name;. Зачем присваивают courseName-name? Спасибо за...

Зачем нужна lib для dll
Здравствуйте, постигаю основы программирования. Скажите пожалуйста, зачем нужна lib c символьными...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru