chum
18:48 05-11-2004 ООП
От "оверрайдов" и "оверлоадов" голова идет кругом. Говорил же мне друг, что без наследования проще будет, а я подумал, что с наследованием кода меньше будет, ну и моя ленивая натура сделала выбор Теперь сражаюсь с виртуальными методами
Комментарии:
ети
01:51 06-11-2004
и, пожалуйста, маленькую "расшифровочку" к этому посту - для русскоговорящей части нашей необъятной!
Ekson
02:01 06-11-2004
да, и мне можно тоже))))
chum
21:14 08-11-2004
оверрайд - это когда метод потомка перекрывает метод предка,
а оверлоад - когда метод потомка перегружает метод предка,
ООП - объектно ориентированное программирование
В итоге все получилось
ети
04:24 09-11-2004
адмлилуя, админь!
chum
05:38 09-11-2004
ети
Блин, я же не прошу тебя объяснить все тонкости гражданского процесса, а так в двух словах...
А если тебе совсем уж интересно, то ООП - это такая методология программирования, в которой предметная область программируемой задачи представляется в виде объектов и отношений между ними (т.н. ER-модель (сущность-связь)). Объекты - это экземпляры классов, а классы, сосатвляющие т.н. иерархию классов это логическое представление реальных физических тел, процессов и т.п. рассматриваемых в данной конкретной задаче. Классы представляют собой контейнер (а точнее абстрактный тип данных, определяемый программером) данных и средств обработки этих данных (т.н. инкапсуляция - одно из 3х основополагающих понятий ООП). Так вот эти самые классы можно наследовать(2е осн. понятие ООП) один от другого(или от нескольких). Наследование и помогает сократить код(не всегда) и самое его главное достоинство - повторное использование кода. Пример. У тя есть класс "Средство передвижения" - абстракный базовый класс. Т.е. он не содержит реалиации, а только описание общее для всех средств передвижения: колесная формула, тип кузова, вид коробки передач и методы, например переключить передачу, завести тачку и заглушить. Так вот Ты от этога класса наследуешь два других класс "Родстер" и кдасс "Офигенно большой грузовик типа Камаз". В этих двух классах будут общие поля вид коробки и т.д. унаследованные от предка "Средство передвижения" и добавятся какие-нибудь свои, специфические, например поле логического типа "ЕСть ли блок впрыска закиси азота" для класса "Родстер" и "Грузоподьемность" для класса "... типа Камаз". Далее, методы в абстрактном базовом классе - виртуальные; это-то и значит, что они не имеют реализации в этом классе, а должны переопределяться в классах предках (а это уже называется полиморфизм - третье основополагающее понятие ООП). Итак имеем в классе предке виртуальный метод(метод - это название функции в ООП) "Переключить передачу" и два невиртуальных "завести.." и "заглушить". Что я хочу сказать, а вот что, для разных тачек операции завестись и заглушить, в принципе, за некоторыми исключениями идентичны и их можно описать один раз в классе предке, а потом наследовать в потомках (это-то и есть повторное использование кода) и не писать по 20 раз одно и тл же. А операция переключить передачу для разных тачек может быть выполнена по-разному. Например, если я не ошибаюсь, у грузовиков нет "пятой", но даже если я и ошибаюсь, ты уже понял к чему я клоню. Ну и там различия в автомат-механика. Так вот этот метод надо в потомках переопределять(перегружать). А оверрайд и оверлоад - это конкретная реализация этих идей в конкретном языке. А теперь дезидератум: ты должен это все прочитать и усвоить, а также быть способным ответить на вопрос чем отличается позднее связывание от раннего (это к полиморфизму довесок) ибо все это я писал в полудреме около шести утра(точнее сам смтрри в заголовке коммента), чтобы удовлетворить твое любопытство (а его я уважаю и всячески стараюсь подстегивать) и чтобы ты не думал, что я от тебя отмахнулся предыдущим пространным комментом. И на последок, когда задаешь вопрос думай, а действительно ли ты хочешь услышать на него ответ, особенно, если задаешь его программеру

Сатори
Надеюсь тебя мое объяснение также удовлетворило, если нет, то либо звиняйте, либо продолжайте спрашивать дальше(к ети это тоже отоносится), с удовольствием отвечу
ети
15:40 09-11-2004
ээээ..эээ... *сидит и оглядывается вокруг
пожалуй, лишь эти строки: "И на последок, когда задаешь вопрос думай, а действительно ли ты хочешь услышать на него ответ, особенно, если задаешь его программеру" - были действительно адресованы мне
Ekson
17:28 09-11-2004
Я воздержусь от вопросов
chum
13:38 15-11-2004
Считаем тему закрытой