Форум программистов, компьютерный форум, киберфорум
Обо всем!
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
6 / 5 / 1
Регистрация: 30.11.2013
Сообщений: 104

Зачем нужно ООП?

13.01.2014, 21:29. Показов 4738. Ответов 52
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем, столкнулся с такой проблемой (пока только постигаю азы программирования в с++), я не понимаю, зачем нужно ооп, ибо все на своем уровне я могу запрограммировать и не используя классы, это будет даже легче, чем их использовать. Будьте добры, поясните, зачем нужно ооп, в чем его преимущества? А также будьте добры, приведите пример, где я не могу без него обойтись. Спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.01.2014, 21:29
Ответы с готовыми решениями:

Зачем в ООП нужно приведение типов?
Доброго дня всем, меня интересует и вопрос, для чего нужно приведение типов, если я могу сразу создать класс нужного мне типа ? ну вот...

Зачем в .NET в 2014 г. строгая типизация? Зачем нужно писать Convert.ToInt32(), ToString(), Int32.Parse()?
По поводу преобразования. Современный препроцессор кода сам определяет, что куда преобразовывать. Если в функцию, принимающую строку,...

Зачем в php ООП ?
Здраствуйте, я тут решил узнать какой смысл в php использовать ООП, и никак немогу найти на это ответ, помоему ООП только увеличивает...

52
 Аватар для sergei60
50 / 31 / 11
Регистрация: 10.06.2012
Сообщений: 395
14.01.2014, 13:40
Студворк — интернет-сервис помощи студентам
Avazart, я не любопытный , и стараюсь не отвлекаться ,но нырнув в эту тему ,пользы для себя ,как начинающего я не нашел ,а только потерял время. Вот и все. А затруднений в общем то пока нет..
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
14.01.2014, 13:42
Цитата Сообщение от Avazart Посмотреть сообщение
Очень интересно, данные разные ... как ф-ции будут с ними работать ? И что нужно наизусть выучить все вариации ф-ий их параметров?
Зачем? В глобальной области создаем для треугольника например массив из 3 точет int traygol[3]={0}; для четырехугольника массив из 4 int chetureygol[4]={0}; и каждая функция работает со своим массивом. Ты даже не понял зачем мы создаем глобальные переменные, создаем затем что б не передавать параметры.
Ладно кто шарит тот поймет, маленькие проги ООП не делает легче ИМХО.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
14.01.2014, 13:46
Цитата Сообщение от ninja2 Посмотреть сообщение
Интерфейс можно любой придумать, смотря какие цели ты приследуешь, можно создать интерфейс в виде одной функции и из своей проги ее вызвать и все.
Че за бред. Интерфейс диктует модель, как можно запихнуть указанные методы в одну ф-цию, если они выполняют разные действия.

Добавлено через 3 минуты
Цитата Сообщение от ninja2 Посмотреть сообщение
Зачем? В глобальной области создаем для треугольника например массив из 3 точет int traygol[3]={0}; для четырехугольника массив из 4 int chetureygol[4]={0}; и каждая функция работает со своим массивом.
Затем что, потом нифига не разберешь: какие три точки относятся к какому тесту и какой ф-цией воспользоваться для их обработки.

В итоге прога -хлам из точек, переменных и несвязанных с ними функций, нет никакого порядка, а значит и ясности.
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
14.01.2014, 13:50
Цитата Сообщение от Avazart Посмотреть сообщение
Как гласит реклама "ты не ты когда голодный" в данном случае пройдет какое-то время и тот кто писал программу позабудет детали, подобный подход даст возможность вспомнить настолько глубоко насколько это надо (например что бы добавить еще один тест, если попросит заказчик)
Да разберешься полюбом интерфейс создашь, там посмотрел как другие функции вызываются добавил в switch еще проверку для новой функции и пиши где нить внизу новую функцию, создай еще для нее в глобальной области нужные переменные и все дела.

Ладно кому как удобно и понятней тот так и будет делать, главное как говорится это конечный результат, а он как с ООП так и без ООП будет одинаковый, экзешник один и тот же получится.

Добавлено через 1 минуту
Цитата Сообщение от Avazart Посмотреть сообщение
В итоге прога -хлам из точек, переменных и несвязанных с ними функций, нет никакого порядка, а значит и ясности.
Ну чо нету, ну нужно же комментировать, а не так создал и не подписал, подписывать нада что б знать что это за точки. Да для твоей проги там и без всяких комментариев будет ясно что то за точки.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
14.01.2014, 13:52
Цитата Сообщение от ninja2 Посмотреть сообщение
Да разберешься полюбом интерфейс создашь,
О каком интерфейсе речь, если не используется ООП ?

К примеру что удобнее использовать

C++
1
2
3
std::vector<My::AbstractTest*> tests; // набор из раных тестов
// ...
tests[testIndex]->draw(painter); // единый подход к любому тесту (текущему,активному)
Или каст к void* и прочие шаманства
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
14.01.2014, 13:54
Ладно это как говорится на вкус и цвет товарищей нет, кто то реализует так как я описал без всяких там классов, а кто то с классами.

Добавлено через 1 минуту
Цитата Сообщение от Avazart Посмотреть сообщение
О каком интерфейсе речь, если не используется ООП ?
Ну функцию для фигур как ты будешь вызывать? Для набора функций так же создается интерфейс без всякого ООП. Это называется интерфейс модуля если ты не в курсе.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
14.01.2014, 13:56
Цитата Сообщение от ninja2 Посмотреть сообщение
пиши где нить внизу новую функцию, создай еще для нее в глобальной области нужные переменные и все дела.
Антипаттерн. Никаким образом не защищает от ошибок.
Если же данные раскидать по приватным секциям классов, то компилятор не даст напрямую обратиться к ним.
0
What a waste!
 Аватар для gray_fox
1612 / 1304 / 180
Регистрация: 21.04.2012
Сообщений: 2,735
14.01.2014, 13:58
Цитата Сообщение от ninja2 Посмотреть сообщение
Удобство от ООП это то что в каждая функция в классе видит члены, это очень удобно, если мы создадим допустим две функции и без класса и допустим функция1 делает что то с переменными, которые затем использует вторая функция нам нужно эти переменные возвращать из функции, куда то сохранять, затем снова их передавать в функцию2, а если этих переменных будет 10? Код громоздкий получится.
...
Эмм, т.е. ты считаешь, что ООП нужно для того, что бы писать object.function(args...) вместо function(object, args...), так что ли?)
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
14.01.2014, 14:02
Цитата Сообщение от 0x10 Посмотреть сообщение
Антипаттерн. Никаким образом не защищает от ошибок.
Если же данные раскидать по приватным секциям классов, то компилятор не даст напрямую обратиться к ним.
Он и так не даст обратиться мы ж не запишем using namsespase::имя пространства в котором наш модуль находится. Они будут только модулю видны. мы запишем using нужные нам функции из интерфейса.

Ладно, разбирайтесь, я нихо полностью объяснять как что делать, если не знаете есть книги читайте разбирайтесь .

Добавлено через 2 минуты
Цитата Сообщение от gray_fox Посмотреть сообщение
Эмм, т.е. ты считаешь, что ООП нужно для того, что бы писать object.function(args...) вместо function(object, args...), так что ли?)
Нет. Ты вообще не понял. От когда напишешь пару прог реальных рабочих, тогда мб поймешь.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
14.01.2014, 14:03
Цитата Сообщение от ninja2 Посмотреть сообщение
Ладно, разбирайтесь, я нихо полностью объяснять как что делать, если не знаете есть книги читайте разбирайтесь
Погоди, мы пленных не берем, а ну к стенке ...
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
14.01.2014, 14:08
Цитата Сообщение от gray_fox Посмотреть сообщение
Удобство от ООП это то что в каждая функция в классе видит члены, это очень удобно
Вроде ж ясно написано что каждая функция в классе видит члены этого класса.

Добавлено через 3 минуты
Цитата Сообщение от 0x10 Посмотреть сообщение
Если же данные раскидать по приватным секциям классов, то компилятор не даст напрямую обратиться к ним.
Вообще если подумать то данные можно создавать в самой функции даже не глобально.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
14.01.2014, 14:14
Цитата Сообщение от sergei60 Посмотреть сообщение
Avazart, я не любопытный , и стараюсь не отвлекаться ,но нырнув в эту тему ,пользы для себя ,как начинающего я не нашел ,а только потерял время. Вот и все. А затруднений в общем то пока нет..
Ну что же надеюсь хоть ТС эта тема все же принесла какую-то пользу.
Ибо все затевалось не для того что бы поставить ninja2 к расстрелу, а что бы помочь ТС.
0
6 / 5 / 1
Регистрация: 30.11.2013
Сообщений: 104
14.01.2014, 19:41  [ТС]
Честно говоря, я так и не понял но, надеюсь, пойму по мере изучения языка
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.01.2014, 19:41

Что такое ООП?Зачем?Почему?Где?
Ув. программисты,я немало наслышан о важности знания ООП.О том что с ним легче программировать и любой увожающий себя программист должен...

ООП(зачем нужна инициализация переменных в конструкторе Box)
package pkg1; public class Main { public static void main(String args) { BoxWeight hhh = new BoxWeight(10,20,30,40); ...

ООП: Зачем нужна таблица виртуальных методов? Она замедляет работу программы
Разве нельзя определить, метод какого класса вызывать во время компиляции?

Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить?
Вот еще один вопрос зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может...

Зачем нужно u--?
Как я понимаю это счетчик итераций !! но зачем он ?? #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; using...


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

Или воспользуйтесь поиском по форуму:
53
Ответ Создать тему
Новые блоги и статьи
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru