vladislav
> Я могу сказать, что не ООП ;)
"Какие ваши доказательства ?" (c) Красная жара
> > а ты не ответил на мой вопрос :)
> На какой?
что такое не ООП ?
innuendo
> Страуструп писал об этом задолго до ...
Задолго до чего? Ты читал ранние издания его книг? В последнем издании "Язык программирования С++" можно и о с++11 почитать.
innuendo
> Перегрузка операторов
Окей, давай считать, что перегрузка эквивалента полиморфизму. Только это ничего не меняет. Тип int и complex не полиморфны. Что, в общем-то, и сказал vladislav
vladislav
> Что это?
Это мощный пример на ООП. Берется два подхода, приводящих к идентичному результату и считается, что за счет этого мы можно сделать крутое полиморфное поведение. Кстати это возникло после того, как было отмечено, что разные способы представления комплексных чисел - это не пример полиморфного поведения
innuendo
Просто ты, похоже, пытаешься противопоставит С++ и С - т.е. все, чего нету в С, но есть в С++ - это ООП. Очевидно, что это не так.
Я, кстатити, тоже поступаю похожим образом - я считаю, что все, что есть в Хаскель - не ООП ;)
crsib
Ну да. на примере какой-нить жабы и факта, что есть боксовый тип Integer, отнаследованый от Object, доказывает, что целое число - это ООП.
crsib
> > Страуструп писал об этом задолго до ...
> Задолго до чего? Ты читал ранние издания его книг?
я читал Страуструпа самые ранние произведения, и не только Страуструпа, Александреску даже близко тогда не было
> > Перегрузка операторов
> Окей, давай считать, что перегрузка эквивалента полиморфизму.
ну как бы это было ясно с самого начала :)
> Тип int и complex не полиморфны
я говорил, что существует операция +, полиморфна для int и complex
> Берется два подхода, приводящих к идентичному результату и считается
покажи примеры из АИ, где пишется что это два разных подхода ?
vladislav
> Просто ты, похоже, пытаешься противопоставит С++ и С - т.е. все, чего нету в С,
> но есть в С++ - это ООП. Очевидно, что это не так.
нет, я чётко привёл признаки ООП, они ( эти признаки ) на месте - так что я прав :), опровергни
vladislav
> Integer, отнаследованый от Object, доказывает, что целое число - это ООП.
Ну вот как раз важно, что есть боксовый тип, унаследованный от java.lang.Number. При этом Number обеспечивает полиморфное поведение. Только вот наши друзья этого не хотят понимать.
innuendo
> я говорил, что существует операция +, полиморфна для int и complex
Ну, вот в С99 есть комплексные числа. Вот такой код
#include <complex.h> #include <stdio.h> int main() { float _Complex a = 1.0f + 1.0f*_Complex_I; float _Complex b = 2.0f + 2.0f*_Complex_I; float _Complex c = a + b; printf("c = %f + i%f", __real__ c, __imag__ c); }
там работает.
Т.е. С99 - это ООП?
innuendo
> полиморфна для int и complex
Зато типы int и complex не полиморфны.
innuendo
> Александреску даже близко тогда не было
Даже боюсь представить где он тогда был)) Тем не менее, к термину причастны Саттер и Александреску в гораздо большей степени, нежели Страуструп.
innuendo
> нет, я чётко привёл признаки ООП
Не, не привел. У atavin-ta получилось чуть лучше, но тоже не о том. У больно не удачный пример.
В общем идея полимормофизма в ооп в том, что полиморфные объекты взаимозаменяемы.
atavin-ta
> Но ты не обратил внимания, что один и тот же оператор различно перегружается
> для разных версий одного типа, различающихся внутренним представлением данных,
> сохраняя при этом весь интерфейс и семантику и оба раза являясь членом. А
> перекрытие в потомке функции, или оператора предка при сохранении и синтаксиса,
> и семантики называется уже иначе.
В твоем случае это override, да. Но я с innuendo общался. Так что коментарий не в тему.
В том, что ты под конец писал, есть подобие ООП. Но это случай штампования объектов ради объектов. Разное у них представление или нет, но результат сугубо один. И не факт, что ты в итоге реализуешь именно полиморфное поведение.
vladislav
> Т.е. С99 - это ООП?
Ну там же есть слово class. ;) В общем это уже совсем стало похоже на попытку затролить троля. У innuendo слишком богатый опыт в тролинге, нам его не переплюнуть xD
vladislav
> Т.е. С99 - это ООП?
разве я сказал, что ООП - это только полиморфизм ? по-моему, там ещё что-то было :)
innuendo
> нет, я чётко привёл признаки ООП, они ( эти признаки ) на месте - так что я
> прав :), опровергни
Какие признаки?
Ты привел 3 штуки: класс (WTF???) полиморфизм (правда, статический) и инкапсуляция (я хотел уточнить, какие еще скрытые поля может содержать комплексное число). Или ты серьезно считаешь, что если прямой доступ ко ВСЕМ полям заменить на ТРИВИАЛЬНЫЙ геттер/сеттер - это ООП?
vladislav
> класс (WTF???)
Вот кстати да, innuendo так и не рассказал нам, что будет, если мы class заменим на struct ))
crsib
> > нет, я чётко привёл признаки ООП
> Не, не привел.
http://www.gamedev.ru/code/forum/?id=135080&page=24#m346
?
vladislav
> Или ты серьезно считаешь, что если прямой доступ ко ВСЕМ полям заменить на
> ТРИВИАЛЬНЫЙ геттер/сеттер - это ООП?
естественно, не считаю :)
crsib
> В общем это уже совсем стало похоже на попытку затролить троля.
уважаемый, вы по каким книжечкам ООП на С++ учились ? я вот учился по книжечкам года так 93-94 ...
crsib
Да, на прошлых выходных был интересный флейм, на этих что-то не интересно совсем.
Ой, так эта тема еще и в основном разделе...
crsib
> от кстати да, innuendo так и не рассказал нам, что будет, если мы class заменим
> на struct ))
пожалуйста, будет ООП с нарушением инкапсуляции - так устроит ? :)
innuendo
> естественно, не считаю :)
Ок, тогда "огласите весь список, пожалуйста" (для комплексного числа).
Тема в архиве.