Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2008, 12:19   #1
Scratch
Пользователь
 
Аватар для Scratch
 
Регистрация: 25.09.2008
Сообщений: 40
По умолчанию Классы и наследование.

Добрый день, начал кодить на cpp, и, дойдя до классов и наследования, столкнулся с проблемой не понимания для чего это вообще нужно и как это вообще можно использовать, все примеры, что я видел, показывают механику, но не говорят зачем. Раньше кодил исключительно процедурами. Можете привести пример, в котором показывается фишка ооп или пример, где без ооп просто не обойтись?
Scratch вне форума Ответить с цитированием
Старый 25.09.2008, 14:25   #2
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

Цитата:
Сообщение от Scratch Посмотреть сообщение
Добрый день, начал кодить на cpp, и, дойдя до классов и наследования, столкнулся с проблемой не понимания для чего это вообще нужно и как это вообще можно использовать, все примеры, что я видел, показывают механику, но не говорят зачем. Раньше кодил исключительно процедурами. Можете привести пример, в котором показывается фишка ооп или пример, где без ооп просто не обойтись?
предположим ты создал класс "А", его создание и отладка отняли большой промежуток времени. но в друг тебе потребовалось добавить в класс "А" новые возможности, но у тебя по каким либо причинам нет желания/времени заниматься отладкой класса "А" с новыми возможностями.
поэтому ты создаешь класс "Б", наследуешь его от "А" и все его возможности, и добавляешь новые, по мимо тех, что имел класс "А".

но зачастую, физически нет возможности изменить какой либо класс.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Старый 25.09.2008, 15:25   #3
Scratch
Пользователь
 
Аватар для Scratch
 
Регистрация: 25.09.2008
Сообщений: 40
По умолчанию

То есть классы нужны только если влом перебирать код? Больше они ни для чего не нужны?
Scratch вне форума Ответить с цитированием
Старый 25.09.2008, 15:47   #4
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

Цитата:
Сообщение от alexinspir Посмотреть сообщение
но зачастую, физически нет возможности изменить какой либо класс.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!

классы - одна из основополагающих идеологий ООП.

подробнее смотри здесь
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.

Последний раз редактировалось alexinspir; 25.09.2008 в 15:53.
alexinspir вне форума Ответить с цитированием
Старый 25.09.2008, 21:38   #5
Scratch
Пользователь
 
Аватар для Scratch
 
Регистрация: 25.09.2008
Сообщений: 40
По умолчанию

Приведи пример, когда физически это невозможно)
Scratch вне форума Ответить с цитированием
Старый 25.09.2008, 22:07   #6
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

Цитата:
Сообщение от Scratch Посмотреть сообщение
Приведи пример, когда физически это невозможно)
библиотеки классов - самый явный пример.
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Старый 26.09.2008, 02:42   #7
repu1sion
Пользователь
 
Регистрация: 19.09.2008
Сообщений: 14
По умолчанию

если программа, которую ты пишешь, относительно небольшая, то классы тебе по большому счёту совсем не нужны, можно обойтись процедурами. ООП придумали для упрощения разработки сложных проектов, над которыми работает по меньшей мере десяток человек. Т.е. классы нужны не в том случае, когда один человек, уяснив задачу, сразу садиться писать код, а когда сначала идёт стадия планирования, составляются UML-диаграммы, пишутся детальные описания функциональности и поведения программы. Объекты классов по большому счёту соответствуют объектам реального мира, и поэтому работать над большим проектом легче. На примере простенькой программы, которая допустим решает или составляет судоку, ты действительно не поймёшь, зачем нужны эти классы. Но если взять к примеру doom3 , то пожалуй с использованием процедурного подхода, его было бы создавать раз в 5 сложнее. и тем не менее возможно. Итого: ООП придумали чтобы упростить программирование сложных запутанных проектов. и если ты видишь что можешь обойтись без классов, - следовательно в данном конкретном случае они тебе и не нужны.
repu1sion вне форума Ответить с цитированием
Старый 26.09.2008, 02:51   #8
repu1sion
Пользователь
 
Регистрация: 19.09.2008
Сообщений: 14
По умолчанию

всегда можно обойтись процедурами или даже ассемблером, потому что в любом случае всё что пишется на языках высокого уровня, перегоняется в машинный код. Но писать виндовое приложение с кнопочками легче на С чем на ассемблере, и легче с использованием какого-нить IDE чем на WinAPI. Точно также С++ придумали, когда проекты стали настолько объёмными, что люди начали офигевать от размеров кода и путаться в своих же процедурах. И тем не менее всегда можно писать игру типа Stalker на чистом ассемблере, попутно разработав свои собственные функции для вывода 3-х мерной графики. Правда, на это уйдёт в лучшем случае лет 20.
repu1sion вне форума Ответить с цитированием
Старый 26.09.2008, 20:25   #9
Scratch
Пользователь
 
Аватар для Scratch
 
Регистрация: 25.09.2008
Сообщений: 40
По умолчанию

Ниукого не завалялось простенького примера по Полиморфизму? Просмотрел кучу примеров, не понятно...
Scratch вне форума Ответить с цитированием
Старый 27.09.2008, 16:03   #10
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

Цитата:
Сообщение от Scratch Посмотреть сообщение
Ниукого не завалялось простенького примера по Полиморфизму? Просмотрел кучу примеров, не понятно...
про виртуальные и дружественные функции почитай
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конструктор, наследование, перегрузка операций Lioness Помощь студентам 18 02.06.2008 20:44
Одиночное наследование Виртуальные функции Brunette Помощь студентам 3 08.05.2008 19:23
Наследование: абстрактный класс zak Общие вопросы C/C++ 4 22.12.2007 13:49