Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Странно
|
|||
|---|---|---|---|
|
#18+
Народ, а как же так это полдучается, фокс выполеняет все условия ОПП , а виртуальную функцию в классе объявить нельзя. Нас в заблужедение вводят походу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 12:12 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Виртуальные функции это средство обеспечивающее динамический полиформизм и его фокс поддерживает в полной мере в силу своей природы (фокс ведь интерпретатор, а не компилятор): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 12:44 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Это не совсем виртуальныя функция. Где таблица витруальныз методов? Где выполения кода функции по ссылке без прямого обращенитя к объекту ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 13:10 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
авторЭто не совсем виртуальныя функция. Где таблица витруальныз методов? Где выполения кода функции по ссылке без прямого обращенитя к объекту? Где вы вычитали, что поддержка виртуальных функций это неотъемлемый атрибут ООП. Виртуальность это средство поддержки полиформизма не более того. Если хотите, в фоксе, все функции-члены виртуальные. А так, существуют три основных черты характеризующие ООП: 1) наследование 2) инкапсуляция 3) полиформизм Все три поддерживает фокс. Что Вам еще надо, не понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 15:16 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
>Где вы вычитали, что поддержка виртуальных функций это неотъемлемый атрибут ООП. Виртуальность это средство поддержки полиформизма А полиморфизм неотъемлемая черта ООП :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 15:21 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Для "особо одаренных", которые не понимают, объясняню : в VFP то что вы называете полиморфизмом , это совсем даже совсем не полиморфизм. Все функции полиморфны :) Один оператор DODEFAULT() чего стоит :)) Интересно мне было посмотреть на этот полиформизмом в реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 15:27 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Рискую прослыть "ретроградом", но скажу больше - даже статических членов VFP не поддерживает, не говоря уже о перегрузке методов, или (не дай БГ) "конструкторов"... И что же тогда от ООП остается? инкапсуляция да наследование... про полиморфизм - можете смело забывать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 16:41 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Ну, братец-месяц, звиняй, таков уж синтаксис. А что в твоём понимании есть полиморфизьм? И ты уверен что твоё понимание правильно? Да и нафик те ООП, уже давно компонентное прог-е в моде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 17:02 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
авторРискую прослыть "ретроградом", но скажу больше - даже статических членов VFP не поддерживает, не говоря уже о перегрузке методов, или (не дай БГ) "конструкторов"... Выше перечисленное не имеет отношение к ООП как таковому. авторДля "особо одаренных", которые не понимают, объясняню : в VFP то что вы называете полиморфизмом , это совсем даже совсем не полиморфизм. Будьте добриньки, "одаренный" вы наш, объясните пожа чтоже вы понимаете под полиформизмом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 17:06 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
> Следует заметить, что перегрузка методов есть сердце ОПП в реализации любого языка программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 17:09 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Выше перечисленное не имеет отношение к ООП как таковому Абсолютно согласен с этим Вашим высказыванием, потому что VFP в "выше перечисленном" тоже фигурировало... :-)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 17:23 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
авторАбсолютно согласен с этим Вашим высказыванием, потому что VFP в "выше перечисленном" тоже фигурировало... :-)). Абсолютно согласен, VFP не имеет никакого отношения к ООП, он просто его поддерживает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2004, 19:28 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
to 1024: автор>Да и нафик те ООП, уже давно компонентное прог-е в моде.А компоненты ты писать как будешь ? ;) Хотя зачему что писать компоненты на VFP, это что-то с чем-то. Вот хочу я компонент на фоксе юзать, а к нему RTL ставить надо, а весит этот RTL свыше 3 мегов, странный какой-то COM получается не правда ли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 11:45 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Ты хочешь сказать, что в Васике не так? Интерпретатор, батенька ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 13:13 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
А в Visual C++ - вся Windows один большой пол-гиговый RTL, а в Delph'ах тоже свой RTL (как они там называется - не помню), а в машинных кодах вааще ничего не надо, ни ОС, ни транслятора. Это опять что ли Holly Wars ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 13:18 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Re:oleg_km Я не совсем тебя понял на счет Holly. Только вопрос был не о том как все плохо тут и хорошо там, а о том как имея то что имеем сделать так чтобы сделать правильно, а нет так чтобы это работало. Сечешь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 14:27 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Тогда мне не совсем понятен твой вопрос. Как я помню виртуальную функцию из Turbo Pascal и как это описано у Страуструпа - есть абстракный класс, который определяет нужную функциональность, но не реализует ее, ее реализовать должны потомки, перегружая виртуальные функции, и если программист забыл в потомке реализовать какую нибудь функцию - компилятор ему напомнит. Именно этого нет в VFP, как нет много из того, что есть у компилятора, а нет у интерпритатора. Переписать же метод у класса никто не мешает, как это продемострировано во втором сообщении. И виртуальных таблиц нет поэтому, и указателей, что там еще есть у "настоящих" (машинных) языков, все это как-то реализовано по-своему в интерпретаторе VFP. А что именно из полиморфизма не хватает в VFP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 16:23 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Счас сам у себя ошибку найдешь : Вспомни про чисто виртуальный класс... дальше рассказывать? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 16:30 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Да рассказывай, раз начал. Я в последний раз Страуструпа году как-то в 1997 в руках держал, не до этого было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 16:46 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
2 June авторВспомни про чисто виртуальный класс... дальше рассказывать? :) Чисто виртуального класса нет в природе, так что, дальше рассказывать не имеет смысла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2004, 17:37 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
> anatoly_s Батенька :) В VFP точно нет, но мир-то в VFP не уперся. А по "учебнику" чисто виртуальный - это абстракный класс, как же можно делать такие демагогический выводы, да еще и на весь форум, подготовится нужно малеха. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 11:29 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
2 June авторБатенька :) В VFP точно нет, но мир-то в VFP не уперся. А по "учебнику" чисто виртуальный - это абстракный класс, как же можно делать такие демагогический выводы, да еще и на весь форум, подготовится нужно малеха. Я вам не батенька. Есть понятие чисто виртуальной функции, понятия чисто виртуального класса нет в природе. Класс с хотя бы одной чисто виртуальной функции является абстрактным. Вы же проводите знак равенства между чисто виртуальный == абстрактный, мешая понятия, не имея о них ни малейшего представления. Так что ваш совет на счет обращения к книгам, обращаю в вашу сторону. Ваше хамское отношение к ведению диалога заставляет меня думать, что вы пришли сюда исключительно пофлеймить. Если это так, то я вам больше отвечать не буду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 12:22 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Если уж перешли на личности: Не вводите народ в заблуждение. То что вы пишите популизм чистейший. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 12:33 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
2 June Читайте книги и не смешите уважаемых посетителей. Надоело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 12:44 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков :) да вы тщеславны ? ну это ваши проблемы, а вот на счет книг идея хорошая, но вы опоздали, я их не только читаю , но и пишу , для таких балбесов как вы. Которые кроме гарлопанства ничего внятного сказать не могут. так что вы правы - отсавим этот разговор. Я предполагал конструктивного диалога. Но если Вы хотите показаться тут самым умным -будьте им :) Я не против. Ктож спорит-то . У каждого своя правда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 12:51 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
2 June Безапелляционный ложь. Вы говорите без аргументов, а значит врете. Хотел бы взглянуть хотя бы на одну вашу книгу, демагог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 12:56 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Может за Вас еще и почитать ? Или мозги на прокат дать ? :)) Диалог закончен Толян. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 13:02 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
А действительно, братец-месяц, чё ты сюда пишеш? Ведь есть же "Просто трёп". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 13:13 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Начиналось с обсуждения с проблемм насущьных, но некотые индивиды, не будем показывать пальцем его в превратили в треп. ну как говорится : за что боролись на то и напоролись :) Аминь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 13:20 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Обсуждение "насущных" проблем началось с того-что: 1) абстрактные классы назвали "чисто виртуальными", хотя не в одной из реализаций я такого синонима не нашел, даже заглянул в Object Pascal 2) отсутствие виртуальных таблиц и виртуальных функций приравняли к отстутвию полиморфизма 3) и на любую просьбу просветить незнающих отвечаем "сам дурак" По-моему это и есть изначально флейм. Самое интересно, не нашлось больше ни одного интеллектуала, кто бы понял автора топика. Может мы являемся свидетелями открытия века? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 13:54 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Ой да ладно прям, сразу обижаться. Вообще-то, если в основании лежало что-то полезное, неплохо было бы разобраться. Не все книги постоянно читают и тем более их пишут, поэтому если есть желание донести до людей свою мысли - изложи по-конкретнее и по-доступнее. Не надо только "куда уж понятнее и доступнее", судя по отсутствию положительных откликов, никто ничего и не понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 14:06 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
В этом чате кто-то понимает это: 1. Crip 2. NNN 3. Владимир Мошков Извияюсь за рейтинг, никого мажорирования нет. Все остальные вышли получить бесплатные идеи за минимальное время ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 14:15 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
автор> неплохо было бы разобраться Нечего разбираться, и так ясно - товарищ не читатель, а писатель. Судя по количеству грамматических ошибок, можно только посочувствовать корректору таких писателей :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 16:02 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
2 XAndy : Ты попался :) Я не экзамене по правописанию. А то что ты обратил внимание именно на это, говорит о твоей полной тупости. Типа: Хоть как-то но в жопу влезть. Вообщем господа. Желающие разобраться и что-то против поиметь, могу дать телефон, забьем стрелу. И все осбсудим, тут пиздеть не мешки ворочать, тем более с такими тупездями как тут, выдающими себя за "Графа Монте-Кристо". Остой - 1 слово . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 16:22 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Попытаюсь разрулить вас, уважаемые коллеги, потому что imho температура дискуссии подскочила уже после первых постов в подстрекательном тоне, затронувших самолюбие оппонентов. Уважаемый June, прекрасно помню себя, оказавшимся однажды в Вашей ситуации, когда я впервые прочувствовал, как ранит печатное слово ... Со временем приобрел иммунитет и некоторые дипломатические навыки и теперь легко общаюсь с собратьями по разуму - потому что за каждым есть наработанный опыт и сформированные убеждения, часто противоречащие с мнением большинства ... Но, что поделать - мир прекрасен своим многообразием ! Поздравляю всех коллег с праздником (и с очередными халявными выходными) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 16:27 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Достаточно зайти на Яндекс и набрать в строке поиска - "полиморфизм + определение + ООП", чтобы на первой же странице найти кучу ссылок по теме... 1) абстрактные классы назвали "чисто виртуальными" - не одни мы... (это просто у "С-шников" терминология такая). 2) отсутствие виртуальных таблиц и виртуальных функций приравняли к отстутвию полиморфизма - тут между понятиями "полиморфизм" и "позднее связывание" вообще ставится знак равенства (а перегрузка методов вообще выносится "за скобки" ООП)... а тут, немного более мягко - "виртуальный" класс милостиво разрешают называть "полиморфным" при этом уточняя, что "Самое главное отличие заключается в том, что полиморфные классы допускают обработку объектов, тип которых неизвестен во время компиляции" (и где же ето в VFP при вызове CREATEOBJECT() неизвестно заранее - что за объект будет создан? и что за беда, если внутренние механизмы компилляции VFP-кода реально построены на "позднем связывании", а в структуре самого этого кода это никак не реализуемо?) Вобщем, спорить бесполезно, уже и так явно видно, что есть некоторая часть людей, считающих FVP "полной реализацией ООП-подхода к программированию", что толку доказывать ревнителям веры, что их вера не единственно-правильная... :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 16:33 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Я конечно категоричен, но простите - я не мальчик для битья. Я предлагал коструктивный диалог, а масса что-то зашуршала и пыталась просто обосрать. Я вот что-то не пойму где я "ошибся" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 16:34 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Я вот что-то не пойму где я "ошибся" В способе ведения дискуссии. Когда наметилось явное непонимание используемой терминологии надо было не отсылать читать учебник (хотя бы указали название :) ), а привести пример кода, ну, хотя бы на C++. Дескать, на C++ я могу сделать вот так. Как то же самое можно сделать в VFP и можно ли вообще? FoxPro поддерживает ООП не в полной мере, если следовать строгой теории ООП. Видимо разработчики посчитали либо не нужным, либо очень сложным поддержку отдельных положений ООП в VFP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 16:50 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
FoxPro поддерживает ООП не в полной мере Наконец-то нашелся нормальный человек, который произнес нормальное взвешенное суждение по вопросу, в котором является нормальным профессионалом... :-)). З.Ы. а остальные защитники "реализации ООП в VFP" (ИМХО) все старались быть святее Папы Римского в вопросах своей веры... З.Ы.Ы. насчет осуждения "способа ведения дискусии" со стороны June - тоже поддерживаю, кстати. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 17:06 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
И все-таки - как сильно это искушение опрометчиво осудить или дать характеристику - многих парней, принимавших участие в дискуссии, я хорошо знаю по ФоксКлубу и уважаю, как профессионалов - Удачи всем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 17:17 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Да при чем здесь вера. Что считать строгой теорией ООП. То как она реализована в C++? Или все таки это некие общие принципы, которые языки компиляторного типа реализуют по-своему, языки-интерпритаторы - по-своему. Я посмотрел предложенную статью: Да перегрузка на C++ int quarter (int, int) double quarter (double, double) на VFP Код: plaintext 1. 2. 3. 4. 5. 6. автор(и где же ето в VFP при вызове CREATEOBJECT() неизвестно заранее - что за объект будет создан? а в предлагаемом примере не так разве (из ссылки): Код: plaintext 1. 2. 3. 4. на VFP просто нет первой строчки, да и то, только на VFP 6.0 Не хочу настаивать на мелочах: авторне одни мы... (это просто у "С-шников" терминология такая). прочитал всю предложенную статью, правильная статья, но хоть убейте не нашел упоминания "чисто виртуального класса ", есть "абстрактные классы" и "чисто виртуальные функции" Просто от оппонентов требуют точно придерживаться теории, а в ответ вольное обращение с терминами, оттого и непонимание,что конкретно хотят доказать. Ну остальное, конечно, эмоции, не без этого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2004, 17:30 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Ну мужики вы блин даёте Две недели не был на форуме, а тут такая дискурсия!!! И даже рейтинг самых продвинутых представлен. Во всём этом трёпе вижу только три проблемы: 1. Товарищ перешёл на фокс из другого языка и пытается работать так, как там привык. Так не бывает. 2. Свойственное всем не знающим фокса высокомерие. 3. Поверхностное знание товарищем как фокса, так, похоже, и того языка, на котором он писал. Подозреваю, что это был не Basic. Призываю спрашивающих - не наглеть и не пытаться принизить то, в чём они не очень разбираются, а отвечающих - не попадаться на дешевую наживку. ООП (как объектно-ориентированное программирование, так и объектно-ориентировнное проектирование) - понятие достаточно расплывчатое. То же относится и к полиморфизму как его компоненту, тем более, что в этом понятии пытаются объединить две несвязанные между собой вещи, а именно - явление полиморфизма при наследовании (что прекрасно реализовано в фоксе), и полиморфизм при раннем и позднем связывании (это уже COM - технологии, так же реализованные в фоксе). Что касается виртуальных функций, то их (пока - в явном виде) и не может быть в фоксе в связи с отсутствием механизма указателей. Но это ну никак не мешает писать вполне приличные приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2004, 10:25 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
2 oleg_km Ну вы, батенька, и выступили... :-)) (зачем себя-то так позорить при всем народе?) Сначала перегрузку методов приравняли к передаче в метод бестиповых параметров с последующим анализом их "под-типов" в DO CASE... (такими темпами вы и VBScript скоро ООЯ назовете, там же тоже параметры можно без типа передавать, и функция CreateObject() там тоже есть, останется только в качестве примера "наследования" придумать подобного пошиба "аналогию", вроде вложенных вызовов функций/процедур, и вперед - "VBScript на знамя ООП!!!") Затем начали к словам придираться откровенно... Оказывается человек всю жизнь называвший "абстрактные методы" - "чисто виртуальными функциями" не может в запале "полемики" перепутать немного сочетаемость эпитетов "абстрактный"/"чисто виртуальный" и "метод(функция)"/"класс"... А на него (человека перепутавшего) сразу же свора накинулась - "да как он смел!?", "да на нашу любимую лису!?", "да такими словами неправильными!?", "да еще и почитать чего-то советует!?", "да сам нифига писать не может, а туда же..." (видно же сразу по тексту - откуда "уши" этой терминологии торчат? вот и "старшие товарищи по цеху лисятников" понимая происходящее - спокойно посоветовали "не лезть в бутылку", однако же - спокойно...). 2 Вячеслав Клепинин Флейм, действительно, интересный... и судя по тому, что за праздники не добавилось новых постов (кроме вашего отклика), думаю, что его надо продолжить, т.к. БГ с ней, с терминологией и с "holy wars" по поводу любви к лисе, но мне кажется, что у большинства присутствующих в дискуссии (включая и вас, неофит) - абсолютно разные (я пока не говорю "неправильные") понятия о том, что такое "полиморфизм"? А тема сама по себе достаточно интересная... Давайте скатимся немного с рельсов осуждения оппонентов за "недостаточное" или "неправильное" понимание сути вопроса, а попробуем определить общую точку зрения на явление методом "сверху-вниз"... Вопрос первый: В каких программных конструкциях может проявляться полиморфизм как таковой и что они по сути своей обозначают? 1. т.н. "полиморфизм при наследовании" - "называется одинаково, параметры принимает одинаковые, а реализуется по-разному в зависимости от места в иерархии наследования"; (с) Вячеслав Клепинин, программная реализация (с) Анатолий Широков; 2. "полиморфизм при перегрузке методов" - "называется одинаково, параметры принимает разные, а реализуется по-разному в зависимости от типа и числа параметров"; (с) мой, опровержение (с) Анатолий Широков и Брюс Екель(?); 3. "полиморфизм при раннем и позднем связывании" - "называется одинаково, параметры принимает одинаковые, а реализуется по-разному в зависимости от типа объектной ссылки, через которую идет вызов"; (с) Вячеслав Клепинин, опровержение (с) мое, June и Брюс Екель(?). По первым двум пунктам спорить бесполезно, т.к. п.п.1 бесспорно в VFP реализован, а п.п.2 бесспорно не реализован, но зато у некоторых авторов (не только с данного форума) есть твердое убеждение, что это вообще не "полиморфизм", не ООП, а просто "трюкачество" на этапе компилляции... ок, нет так нет... (их доводы мне известны, доказывать обратное - безполезно) Почему же в третьем пунке я написал слово "опровержение"? Т.к. у ув. Вячеслава Клепинина я взял только определение, а вот насчет сущности явления - считаю, что СОМ-технологии (пусть даже и реализованной в фоксе с помощью "позднего связывания") не имеют к этому типу проявления полиморфизма никакого отношения... И суть полиморфного поведения кода при такой реализации - может быть проявлена и исследована только(!) в языках со строгой типизацией (коим VFP никогда не являлся). Нельзя в VFP объявить переменную с типом базового класса, а присвоить ей ссылку на объект порожденного класса, а ведь именно на таком программном "трюке" построен практически весь "полиморфизм" в С++-подобных языках, именно отсюда (а не от СОМ-интерфейсов) проистекает необходимость в ключевых словах типа abstract , virtual , override и т.д. У VFP (как и у Java, впрочем) на этот счет все просто - любое связывание "позднее", любая реализация в наследнике - "роднее" для исполняемой среды, чем реализация в предке, как только по дереву наследования встречается первый реализованный метод - он тут же исполняется ран-тайм средой и обо всем забывается... В других языках - по-разному... иногда бывает, что "роднее" оказывается и реализация предка, и для того, чтобы четко разделить - какому ссылочному типу какая реализация соответствует, надо очень аккуратно обращаться с деревом наследования, или использовать "чисто виртуальные" объявления в предках, чтобы ненароком не "зацепить" левую реализацию (и ничего страшного в этом нет, так, просто "плата за чрезмерную гибкость"). В итоге получается, что пресловутый "полиморфизм при наследовании" (п.п.1) оказывается всего лишь - вырожденным частным случаем третьего пункта, при постоянных "граничных условиях" среды исполнения, заключающихся в том, что технология сборки исполняемого кода ран-тайм средой всегда(!) использует "позднее связывание", и всегда(!) выбирает реализацию наследника вместо реализации предка. Если кто-то сможет привести и разобрать "по пунктам" еще 1 вариант проявления полиморфизма - милости прошу... буду только благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2004, 16:21 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Я приравнял только потому, что и тем и другим способом достигается практически одинаковый результат - внешний код, который вызывает функцию, может ее использовать в разных вариантах (с разными параметрами). И пример привел с умыслом, что бы показать разницу между языками. Просто термин "перегрузка" был придуман в C++. Я понимаю, что самая правильная перегрузка - та которая реализована в C++ (без иронии). Но тогда бесполезно обсуждать, почему технологии C++ не реализованы в VFP, а реализуются там другими способами. И этот пример вообще-то к ООП не имеет отношения, т.к. пререгрузка операторов и функций в C++ возможна вообще без всякого упоминания классов. А все остальное, я повторяюсь, результат эмоций. Посмотрите, в каком ключе начался топик. Если тема интересна, можно начать ее с предыдущего ответа, только определиться, что конкретно интересно в VFP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2004, 19:39 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
to qu-qu Позволю себе привести отрывок из источника, на который вы ссылались: Полиморфизм - это свойство, которое позволяет одно и тоже имя использовать для решения нескольких технически разных задач. Не правда ли, внушает... Кстати, имя у вас какое-то не солидное. По стилю изложения материала определённо можно судить о вашем профессионализме, а qu-qu как-то это смазывает... Что касаемо терминологии - то здесь каждый понимает как умеет. Основы ООП были заложены ещё в языке simula (1967 год). Но широкое использование их стало возможным только в 90-е годы, в частности, благодаря появлению С++ (напомню, что "С", как, впрочем, и "A", и "B", придуманные Ричи и Керниганом, не были объектно-ориентированными) с одной стороны, и увеличению мощности и производительности вычислительных систем. Путаница в терминологии была, есть, и, видимо, будет всегда. Как пример, могу привести понятия SDI и MDI приложений. Первоначальное значение "документ/представление" как-то нивелировалось, и теперь в документации запросто можно найти примеры, использующие эти термины для приложения на основе диалогового окна, в котором размещён контрол типа RithTextBox, вставлено меню, и про которое говорится, что это, оказывается, SDI-приложение. Что касается типизации - так начиная с VFP7 это уже появилось. Как, кстати, и раннее связывание (см. FoxHelp). to all: Ребята, ну не забывайте, что фокс - это СУБД. То есть штука достаточно специализированная (при всех своих недостатках) и рассчитанная в первую очередь на массового пользователя. А то ведь скоро и от Access начнёте требовать, чтобы как в VC++ было... Средства ООП, естественно, как-бы "добавлены" в него, причём разработчики постоянно пытаются сохранить всё то хорошее, хотя зачастую уже и не нужное из того, что было в нём ранее. 2qu-qu Если не трудно, поясните, что вы имеете в виду под словом "неофит"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2004, 09:55 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Если не трудно, поясните, что вы имеете в виду под словом "неофит"? "Неофит" вообще - "новообращенный", применяется как определение человека, недавно принявшего определенную веру (изначально применялось в раннем христианстве для обозначения новых "примкнувших" из числа язычников). В контексте данного топика и моего обращения к вам с этим словом - имелось ввиду то, что вы "примкнули" к данной конкретной дискуссии достаточно поздно, когда уже практически "весь пар ушел в свисток"... (а жаль). З.Ы. насчет ника - сам иногда удивляюсь, почему так "несолидно" получилось... :-)), (когда регистрился - работал тогда на такой работе, что приходилось "соблюдать строгую анонимность", а потом - привык... пусть уж лучше меня "судят" по моим высказываниям, чем по "внешности"). З.Ы.Ы. а вот как вы все тут смайлы такие круглые ставите в сообщениях? (я с тех пор как переписали форум на ASP.NET так и не нашел - как ети смайлы ставить, все "боковыми" пользуюсь). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2004, 12:03 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
qu-quа вот как вы все тут смайлы такие круглые ставите в сообщениях? Код: plaintext А другие варианты, кажется с других сайтов тянут.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2004, 12:55 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
:) :)) ну вот, с третьей скобки получилось... (а "методом научного тыка" я раньше только до второй добирался... "на всякого мудреца довольно простоты", мля) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2004, 13:00 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков Анатолий, не связывайтесь - June это клиника. Странно только куда смотрят модераторы? June Такого откровенного хамства и глупости я здесь уже давно не видел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2004, 14:31 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
Да, к стати, насчет полиморфизма и ООП - VFP конечно же поддерживает динамический полиморфизм (т.е. то что в C++ реализовано через виртуальные функции) - VFP не поддерживает статический полиморфизм (aka C++ overloading - т.е. существование у класса нескольких методов с одним именем, но разной сигнатурой) - VPF не поддерживает статические методы, перегрузку операторов и множественное наследование :) - специально для qu-qu - в createobject() как и в new - класс всегда указывается явно - могли бы хотябы подумать что пишите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2004, 14:44 |
|
||
|
Странно
|
|||
|---|---|---|---|
|
#18+
хе-хе... могли бы хотябы подумать что пишите Насчет вашего т.н. "русского языка" я уже высказывался в другом форуме, не усугубляйте, пжлст... (пишите себе на Java, или книжки по ней покупайте/читайте, но не надо пытаться выплескивать тут личные обиды во флейм, используя любой повод). З.Ы. интересно, сколько времени (постов) продержится флейм в этой ветке после фактического прекращения дискуссии "основными участниками"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2004, 15:12 |
|
||
|
|

start [/forum/search_topic.php?author=jambo_2&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
12ms |
get forum list: |
19ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
167ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
113ms |
get tp. blocked users: |
2ms |
| others: | 736ms |
| total: | 1103ms |

| 0 / 0 |
