LINUX.ORG.RU

Ответ на: комментарий от anonymous

А что оно такое и где оно еся??? В Паскале такого тоже нету но я не слышал в его сторону таких заявлений :-(

cvv ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Можно серьёзней??? :-(

cvv ★★★★★
() автор топика

C++ - не совсем ОО-язык. Это гибридный язык. Я бы не стал называть его в чем-то урезанным. Скорее, наоборот.

ANDI ★★
()
Ответ на: комментарий от cvv

Поддержка нескольких парадигм программирования.
- структурное (С)
- ОО
- шаблонное
C++ не зацикливается на ОО (в отличие от той же Java) и разработчик в этом плане свободен на все 100.

ANDI ★★
()

все что нужно для ОО -- это иметь возможность extension cтруктуры -- то есть если у тебя есть одна структура, то иметь возможность определить вторую структуру так чтобы ты мог при желании "увидеть" в ней первую структуру. Все остальное это bells and whistles, которые можно самому прикрутить. Я не понимаю что ты говоришь об обрезанности.

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

>все что нужно для ОО -- это иметь возможность extension cтруктуры

А как же быть с поздним связыванием, то бишь с виртуальными функциями? Помоему самостоятельное прикручивание такой штуки - есть весьма здоровенный костыль.

Dead ★★★★
()
Ответ на: комментарий от Dead

> А как же быть с поздним связыванием, то бишь с виртуальными функциями? Помоему самостоятельное прикручивание такой штуки - есть весьма здоровенный костыль.

во первых я теоретически говорил:)

во вторых просто нужно хороший макроязык. И никаких костылей не понадобится.. ИМХО

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

Все, что нужно в ОО - это обеспечить объектам возможность передавать-получать сообщения.

Расширения вселенной, наследования имущества, делегации европарламентов и т.п. - это всего лишь те самые bells and whistles.

anonymous
()
Ответ на: комментарий от anonymous

> Все, что нужно в ОО - это обеспечить объектам возможность передавать-получать сообщения.

ну как раз это не верно потому что можно иметь объекты передающие/получающие сообщения но не полиморфные:) Вот это точно кастрированное ОО.

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

> можно иметь объекты передающие/получающие сообщения но не полиморфные:)

Что имеется в виду?

anonymous
()
Ответ на: комментарий от anonymous

Изображение - это список объектов типа "графический примитив" Отрисовка такого изображения сводится к проходу по циклу и посылке сообщения "нарисуй себя". Все себя нарисуют, но например, Circle нарисует круг, Spline - кривульку, Rect - прямоугольник и тд
Смысл в том, что движок знает, что каждый объект может себя нарисовать, не заботясь о том, что это за объект.

Flogger_d
()
Ответ на: комментарий от Flogger_d

И что ты хотел этим сказать? Разумеется каждый объект будет обрабатывать получаемые сообщения по своему. Разве бывает иначе? :)

anonymous
()
Ответ на: комментарий от ANDI

thank you very mach!!!

>C++ не зацикливается на ОО (в отличие от той же Java) и разработчик в этом плане свободен на все 100.

за что я его и люблю :-)

cvv ★★★★★
() автор топика
Ответ на: комментарий от Flogger_d

Так вот как это называется, а-а-а ... Я всю жизнь разговаривал прозой.

А теперь расскажи, что имелось в виду в фразе "можно иметь объекты передающие/получающие сообщения но не полиморфные", и как эта возможность иметь приводит к какстрированности ОО.

anonymous
()
Ответ на: комментарий от anonymous

> А теперь расскажи, что имелось в виду в фразе "можно иметь объекты передающие/получающие сообщения но не полиморфные", и как эта возможность иметь приводит к какстрированности ОО.

ну ты же умный парень. Сам наверно знаешь что я имел в виду..

представь себе язык в котором есть объекты, но нет возможности составить контейнер разнородных объектов. Или наличие таких контейнеров твое определение само собой подразумевало?..

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

> представь себе язык в котором есть объекты, но нет возможности составить контейнер разнородных объектов.

Что значит разнородных? Способных отвечать на разные сообщения? Или способных по разному отвечать на одинаковые сообщения?

> Или наличие таких контейнеров твое определение само собой подразумевало?..

Я не догоняю, что значит контейнер. Это какой-то неправильный объект?

anonymous
()
Ответ на: комментарий от anonymous

В ОО-языках нет указателей, сборшики мусора автоматические.
С++ - не считают OO - языком в чистом виде как Java, Smaltoc, Ada.
в ОО-языках есть безопасность, в С++ ее нет, так как есть доступ по указателю.
С++ родился как проект "'С' c классами" - для удобства и уж затем развился 
в самостоятельный язык, сохранив наследие 'C'.

anonymous
()
Ответ на: комментарий от anonymous

Ребята не ссорьтесь!:) ОО-сть языка никоим образом не определяется навороченностью механизмов поддержки этой ориентированности в языке. ОО-сть языка проявляется в возможности реализации на нем систем, проектирование которых проводилось в соответствии с принципами ОО проектирования. IMHO :) Так что наличие или отсутствие в ОО языке метаклассов, шаблонов, абстрактов и т.д. необязательно! IMHO :) Был бы объект:)

kiv
()
Ответ на: комментарий от anonymous

> ОО-языках нет указателей, сборшики мусора автоматические.

Во всех ОО-языках и _только_ в них?

> С++ - не считают OO - языком в чистом виде

Я знаю :)

> как Java,

Не катит. Есть примитивные типы. И методы не являются объектами.

> Smaltoc,

Хто? :)

> Ada

Ада чистый ОО-язык? Не знал.

> в ОО-языках есть безопасность, в С++ ее нет, так как есть доступ по указателю.

см. п. 1

> С++ родился как проект "'С' c классами" - для удобства и уж затем развился в самостоятельный язык, сохранив наследие 'C'.

см. п. 2

anonymous
()
Ответ на: комментарий от anonymous

> В ОО-языках нет указателей, сборшики мусора автоматические.

Извиняюсь, это откуда взято?

Dead ★★★★
()
Ответ на: комментарий от anonymous

>В ОО-языках нет указателей, сборшики мусора автоматические.

Это наверное, стандарт есть такой международный, где это написано:)?? Или это IMHO??

>С++ - не считают OO - языком в чистом виде как Java, Smaltoc, Ada. Это кто это не считает??:)

>в ОО-языках есть безопасность, в С++ ее нет, так как есть доступ по >указателю.

Безопасность надо в голову программиста прошивать на первом курсе, а не в языке поддерживать:)

>С++ родился как проект "'С' c классами" - для удобства и уж затем >развился в самостоятельный язык, сохранив наследие 'C'.

Не сразу Рим строился. Читаем Страуструпа, он все объясняет:)

kiv
()
Ответ на: комментарий от kiv

А где такой институтик, где безопасность в голову прошивают??

И что в программах, написинных его выпускниками багов нет??

Я туда бы поступил ;)))))))))))))

morge ★★
()
Ответ на: комментарий от morge

>А где такой институтик, где безопасность в голову прошивают??

Хе-хе:) Я ж сказал что _надо_ прошивать, а не прошивают. Хотя есть наверное - ФАПСИшный или ФБСшный, к примеру:)

>И что в программах, написинных его выпускниками багов нет??

И безопасность не в смысле безглючность, а понимание того что на самом деле пишешь:) Разве на Java с ее безопасностью получаются только безглючные программы?

>Я туда бы поступил ;)))))))))))))

А давай к нам в Пензенский ГУ - научим:)

kiv
()
Ответ на: комментарий от anonymous

> В ОО-языках нет указателей, сборшики мусора автоматические.

В Eiffel (по крайней мере в компиляторе SmartEiffel) сборщик мусора можно отключить. Получается что стоит указать ключь -no_gc и Eiffel перестает быть ОО языком? :)

asso_w
()
Ответ на: комментарий от asso_w

>Извиняюсь, это откуда взято? 
Читайте книжки и статьи их много в Internete 

ОО - язык обладает некими свойствами в числе которых,
есть свойство: нет доступа по указателю.
Если этих свойств нет, то соответственно ...
Это не IMHO - а утверждение разработчиков языков,
 которое постоянно оспаривают 
И не важно как сильно я люблю С++, просто он не ОО-язык,
он С++ со всеми плюсами и минусами.

>> Smaltoc, 
>Хто? :) 
Извините дяденьнки, ошибся. :((   SmallTalk - вроде так.

>В Eiffel (по крайней мере в компиляторе SmartEiffel) 
>сборщик мусора можно отключить
Не знаю.
а как будут удаляться динамически создаваемые объекты ?
Вы сможите их удалить руками ?
Выделенная память должна ведь удаляться.
Впрочем там ведь нет указателей как я помню ...


anonymous
()
Ответ на: комментарий от anonymous

Читаем, читаем :) Только "книжки и статьи в Internete" ссылка ни о чем не говорящая. Попробуйте почитать Страуструпа (практически это создатель языка С++) "Дизайн и эволюция языка С++", ну можно еще добавить "Язык С++". Добавим еще книги по ООП и ООД таких авторов как Буч, Рамбо, Якобсон. Все они заблуждаются насчет С++ постоянно называя его ООЯ. Да кстати! Ведущие разработчики программерского инструментария тоже во тьме блуждают,взять хотябы ребят из Rational (Rose), Microsoft (Visio) и т д. В своих продуктах они почемуто считают что допустимо использовать понятия ООД для С++. Что уж тут говорить о OMG:) Может их просветить надо:) >И не важно как сильно я люблю С++, просто он не ОО-язык, >он С++ со всеми плюсами и минусами. Это и все остальное есть не что иное как YMHO:) Причем ошибочное, IMHO:) ЗЫ. См мое сообщение выше насчет ОО-сти языков программирования:)

kiv
()
Ответ на: комментарий от kiv

> Все они заблуждаются насчет С++ постоянно называя его ООЯ.

Не заблуждаются, а зарабатывают деньги. А какой язык можно называть ОО - может об этом лучше судить человеку, который ввел этот термин? Что там Алан Кэй писал про С++?

anonymous
()

в ООЯ должны быть классы, инкапсуляция, наследование и полиморфизм, а еще он должен быть мягким и пушистым

anonymous
()
Ответ на: комментарий от anonymous

Вот вот:) Я и хочу послушать что Алан Кей сказал насчет С++, со ссылками где именно он это сказал:)

kiv
()
Ответ на: комментарий от kiv

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

anonymous
()
Ответ на: комментарий от anonymous

>Ссылку привести не могу, это >секретные сведения, могущие привести к >массовым самоубийствам >программистов на С++. С этого и надо было начинать:) Теперь беспочвенность Ваших утверждений не оставляет никаких сомнений.

kiv
()
Ответ на: комментарий от kiv

> С этого и надо было начинать:) Теперь беспочвенность Ваших утверждений не оставляет никаких сомнений.

Научись пользоваться гуглом.

anonymous
()
Ответ на: комментарий от kiv

>Читаем, читаем :) Только "книжки и статьи в Internete" ссылка ни о чем не говорящая. Попробуйте почитать Страуструпа (практически это создатель языка С++) "Дизайн и эволюция языка С++", ну можно еще добавить "Язык С++". Добавим еще книги по ООП и ООД таких авторов как Буч, Рамбо, Якобсон. Все они заблуждаются насчет С++ постоянно называя его ООЯ.

Хороший пример - "Дизайн и эволюция языка С++". В самой книге сто раз сказано, что С++ - это гибридный язык.
На обложке под названием большими буквами: "Объектно-ориентированный язык программирования".
Это издатели так объем продаж увеличивают :)

ANDI ★★
()
Ответ на: комментарий от ANDI

>Хороший пример - "Дизайн и эволюция языка С++". В самой книге сто раз >сказано, что С++ - это гибридный язык.

Согласен, только контекст высказываний тоже надо учитывать:) "Гибридный", еще на значит "не ОО". Там сказано что С++ старались сделать гибким языком, то есть в зависимости от требований он такой, каким он тебе нужен. В том числе и ОО. Кто то не согласен?

>На обложке под названием большими буквами: "Объектно-ориентированный >язык программирования". >Это издатели так объем продаж увеличивают :)

Может быть, не спорю:) С++ сложный язык (гибридный), и описывать его всеобемлюще довольно сложно.По крайней мере Страуструт в книге "Язык С++" превысив объем в 1000 стр, так и не смог описать его весь, за бортом осталось очень иного нюансов. IMHO изложения "дизайна и эволюции" фокусируется именно на ОО, не вдаваясь в остальные аспекты и это правильно.

kiv
()
Ответ на: комментарий от anonymous

Обязаельно научусь:) Для того чтобы искать по фразам типа "Алан Кей vs С++" :) А вы научитесь пожалуйста корректно и грамотно аргументировать свои слова:)

ЗЫ. И посмотри вверх по треку, мое сообщение о ОО-сти языков. Думаю вам будет полезно.

kiv
()
Ответ на: комментарий от anonymous

>ОО - язык обладает некими свойствами в числе которых,
есть свойство: нет доступа по указателю.
Если этих свойств нет, то соответственно ...
Это не IMHO - а утверждение разработчиков языков,
которое постоянно оспаривают

IMHO язык, претендующий на роль системообразующего просто обязан поддерживать указатели (С/С++/D).
Язык, не поддерживающий указатели, не являются самодостаточными и часто представляет чисто академический интерес.
Во многих ли проектах используется тот же Eiffel?

ANDI ★★
()
Ответ на: комментарий от ANDI

А какие критерии ОО-языка ?
Попадает ли тот или другой язык под эти критерии.
Все остальное не по теме.

anonymous
()
Ответ на: комментарий от anonymous

>А какие критерии ОО-языка ?
Попадает ли тот или другой язык под эти критерии.
Все остальное не по теме.

Не тот ли это anonymous, который советовал учиться пользоваться гуглом?

- абстракция
- наследование
- полиморфизм

ANDI ★★
()
Ответ на: комментарий от ANDI

>Не тот ли это anonymous, который советовал учиться пользоваться гуглом? 

Нет не тот. Здесь много разных.
Если только такие свойства как: - абстракция ; - наследование ; - полиморфизм ,
то С++ - ОО-язык.

anonymous
()
Ответ на: комментарий от ANDI

> Не тот ли это anonymous, который советовал учиться пользоваться гуглом?

Нет гуглом рекомендовал пользоваться я.

> - абстракция

> - наследование

> - полиморфизм

К ОО вышеуказанное имеет слабое отношение. Кроме того термины надо расшифровывать.

Правильно:

1. Everything is an object.

2. A program is a bunch of objects telling each other what to do by sending messages

3. Each object has its own memory made up of other objects.

4. Every object has a type.

5. All objects of a particular type can receive the same messages.

:)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.