Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2014.10.05;
Скачать: [xml.tar.bz2];

Вниз

Я Написал Книжку по Делфи, хотел бы узнать Ваше мнение и отзывы   Найти похожие ветки 

 
Inovet ©   (2014-02-25 21:29) [160]

> [157] big_djo ©   (25.02.14 21:22)
> можно было бы сделать привязку регистра только к ключевым
> словам virtaul, abstract и dynamic

Нет. Тут или делаем для всего или не делаем. В Си регистр различается, но никто не догадался к нему привязывать семантику. Ну, есть там просто договорённость, что некоторую библиотечную фигню будем целиком в верхнем регистре обзывать, просто, чтобы сразу в глаза бросалось и не спутать, но это к языку как раз и не имеет отношения.


 
Ega23 ©   (2014-02-25 21:30) [161]


> почему так думали? на основании чего?


Задницей чуял.
Подвела.


 
big_djo ©   (2014-02-25 21:30) [162]

-->У них теплее,там помидоры выращивают для половины Сибири - юга-с.
Еще у нас в городе магазинов больше чем людей, хотя город маленький, а с помидорами проблем нет))


 
Inovet ©   (2014-02-25 22:05) [163]

> [162] big_djo ©   (25.02.14 21:30)

Помнится ребята из Абакана много чего полезного писали под Yamaha MSX-2, типа - аналог Нортон Командер, многооконный текстовый редактор ТОР тоже вроде бы они. Ещё Золотарёв Андрей из Абакана писал под ТВ тюнеры софт намного лучший фирменного. Ещё программисты из Абакана ездили за велосипедами в Красноярск в магазин Триал Спорт - когда-то увидел в Инете их фотоотчёт.

Так что прогаммистов там тоже много.


 
Дмитрий Белькевич   (2014-02-25 22:16) [164]

>Хождение по мукам))

Есть трохи :)

>не скомпилится.

Да вроде нет противопоказаний.


 
clickmaker ©   (2014-02-25 22:17) [165]


> А что такое "динамический полиморфизм

я всегда думал, что полиморфизм - он как бы по умолчанию динамический.
А статический - это что-то из серии шаблоны/дженерики


 
Макс Черных   (2014-02-25 22:25) [166]


> "Работу вы проделали большую, сложную и никому не нужную.
> " (с)

Если точно цитировать, то:
 Работу вы, товарищ, проделали большую, трудную и никому не нужную.  М.Горький (с)

Но, имхо, в данном случае самой уместной будет знаменитая фраза Б.Шоу:  Those who can, do; those who can"t, teach.


 
жена полковника Вагина   (2014-02-25 22:36) [167]

я всегда думал, что полиморфизм - он как бы по умолчанию динамический.

а некоторым всегда казалось что полиморфизм никак не связан ни с динамичностью ни со статичностью.

у меня может быть дерево классов без единого виртуального метода (унаследованные от базовых не считаем)
и это никак не помешает мне полиморфно поступать со всем этим хозяйством.


 
big_djo ©   (2014-02-25 22:36) [168]

-->Но, имхо, в данном случае самой уместной будет знаменитая фраза
-->Б.Шоу:  Those who can, do; those who can"t, teach
ко мне это не относится) даже если бы я был профессиональным программером, я бы всё равно книжку написал) мне нравится программирование и всё тут


 
картман ©   (2014-02-25 22:39) [169]

кто умеет - учит, кто не умеет - делает.
Надо будет запомнить))


 
Styx   (2014-02-25 22:44) [170]


> можно было бы сделать привязку регистра только к ключевым
> словам virtaul, abstract и dynamic

Ы, и число пробелов считать, как в питоне. Вот весело будет :-D


 
Полковник Вагин   (2014-02-25 22:44) [171]

> никак не помешает мне полиморфно поступать со всем этим
> хозяйством

вот-вот, совсем хозяйство забросила. Только и знает, что на форумах полиморфно выступать


 
DVM ©   (2014-02-25 22:48) [172]


> жена полковника Вагина   (25.02.14 22:36) [167]


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

Речь вероятно о так называемом полиморфизме подтипов (другое название динамический полиморфизм). Честно говоря, я слабо представляю, зачем такое может понадобится на практике, если нет ни одного виртуального метода. Если не затруднит, приведи пример.


 
жена полковника Вагина   (2014-02-25 22:54) [173]

полиморфизм нужен программисту чтобы иметь возможность имея переменную одного типа и объекты разных типов (на которые она ссылается) - вызывать одни и те же методы.

переменная кар типа тавто.
объекты типа тбмв, тшоха, тшкода.

кар.startengine

если даже startengine будет статичен, то полиморфизм от этого никуда не испаряется.

если стартэнджин виртуален, то тем более.
если же он еще и переопределен у всех или некоторых машинок, то это все тот же самый полиморфизм. ни динамический и ни статический.
это просто полиморфизм.

я как программист завожу все свои машинки полиморфно.


 
Kerk ©   (2014-02-25 22:56) [174]

Я ведь раньше знал, чем сабклассинг от сабтайпинга отличается, но сейчас забыл. Старость не радость. Освежите?


 
clickmaker ©   (2014-02-25 23:03) [175]

> если даже startengine будет статичен, то

полиморфизма не получится


 
DVM ©   (2014-02-25 23:03) [176]


> жена полковника Вагина   (25.02.14 22:54) [173]


> полиморфизм нужен программисту чтобы иметь возможность имея
> переменную одного типа и объекты разных типов (на которые
> она ссылается) - вызывать одни и те же методы.

Да, одни и те же методы... Только вот имея на руках переменную базового типа, ссылающуюся на экземпляр наследника, ты не вызовешь метод наследника с тем же названием, что у базового. Это не полиморфизм.


 
жена полковника Вагина   (2014-02-25 23:08) [177]

и что с того?
или это обязательно для счастья?

например у меня фолкс и октавия.
один концерн, один движок.
заводится одинаково.
метод статический. унаследован и не реинтродьюсен.

и с фига ли это не полиморфизм?


 
жена полковника Вагина   (2014-02-25 23:11) [178]

другой пример:
все тоже самое, но метод стартэнджин виртуальный.
но в наследниках не переопределен.

всю реальную работу по запуску движка будет делать метод в базовом классе.

это уже полиморфизм?
или еще уже снова нет?


 
clickmaker ©   (2014-02-25 23:11) [179]

> метод статический. унаследован

не скомпилиццо


 
DVM ©   (2014-02-25 23:13) [180]


> жена полковника Вагина   (25.02.14 23:08) [177]
> и что с того?
> или это обязательно для счастья?

Это и есть суть полиморфизма. Наследник создает свою реализацию метода базового класса. Не делает еще один метод с тем же названием, закрывая таким образом метод базового класса, а делает именно свою реализацию.


 
жена полковника Вагина   (2014-02-25 23:15) [181]

да неужели?

бат хау эбаут зис:

 TObject = class
   constructor Create;

статический конструктор.


 
DVM ©   (2014-02-25 23:15) [182]


> жена полковника Вагина   (25.02.14 23:11) [178]


> всю реальную работу по запуску движка будет делать метод
> в базовом классе.
>
> это уже полиморфизм?
> или еще уже снова нет?

Это наследование.


 
жена полковника Вагина   (2014-02-25 23:16) [183]

а делает именно свою реализацию.

представь что своя реализация бывает не нужна.
представь что базовый класс уже умеет это.


 
жена полковника Вагина   (2014-02-25 23:17) [184]

Это наследование.

а это динамическое наследование или статическое?


 
clickmaker ©   (2014-02-25 23:18) [185]

> [181] жена полковника Вагина   (25.02.14 23:15)

скомпили
TCar = class
 procedure startengine; // статический
end;

TBmw = class(TCar)
 procedure startengine; override;
end;


 
жена полковника Вагина   (2014-02-25 23:21) [186]

ты сам скомпили.
где я говорил про оверрайд?


 
clickmaker ©   (2014-02-25 23:22) [187]

> где я говорил про оверрайд?

а без него не будет полиморфизма


 
DVM ©   (2014-02-25 23:22) [188]


> жена полковника Вагина   (25.02.14 23:16) [183]
> а делает именно свою реализацию.
>
> представь что своя реализация бывает не нужна.
> представь что базовый класс уже умеет это.

Ну замечательно, причем тут полиморфизм то? Наследник наследует метод предка.


 
Inovet ©   (2014-02-25 23:24) [189]

> [171] Полковник Вагин   (25.02.14 22:44)
> Полковник Вагин

> [173] жена полковника Вагина   (25.02.14 22:54)

Муж полковника Урин не из вашей семьи?


 
жена полковника Вагина   (2014-02-25 23:26) [190]

ну наследует.
и я его вызываю.
у переменной с типом предка.

если оба движка одинаковые, мне и не надо переопределять метод "бай дизайн"
так и задумано.
а если один дизель, а второй бензин, я сделаю метод виртуальным и переопределю его в дизеле.

полиморфизм в обоих случаях живет и действует.

ему все равно как происходит диспетчеризация методов.
он не для этого придуман.


 
DVM ©   (2014-02-25 23:26) [191]


> жена полковника Вагина   (25.02.14 23:17) [184]
> Это наследование.
>
> а это динамическое наследование или статическое?

Это просто наследование. Что такое динамическое наследование и статическое я не знаю.


 
vuk ©   (2014-02-25 23:27) [192]

to DVM ©   (25.02.14 23:13) [180]:

> Это и есть суть полиморфизма. Наследник создает свою реализацию
> метода базового класса.

Полиморфизм, в принципе, может быть без наследования. Наследование - это один из способов его реализации.


 
жена полковника Вагина   (2014-02-25 23:28) [193]

ну а я не знаю что такое динамический/статический полиморфизм.


 
big_djo ©   (2014-02-25 23:30) [194]

-->жена полковника Вагина   (25.02.14 23:16) [183]
-->а делает именно свою реализацию.

-->представь что своя реализация бывает не нужна.
-->представь что базовый класс уже умеет это.

то есть, сама возможность установки указателя на любой объект производного класса, преследует цель иметь возможность запустить переопределенный(или нет) в наследнике метод. А есть переопределенная реализация метода в наследнике или нет, это не важно, так?

это и есть полиморфизм?

Допустим её нет, то вызовется метод базовый, а если есть, то метод наследника.


 
жена полковника Вагина   (2014-02-25 23:32) [195]

Полиморфизм, в принципе, может быть без наследования.

Интересно как же без наследования поиметь разнородные объекты?

а полиморфизм - однообразное управление объектами разных типов.

ЗЫ то что улыбка может существовать без чеширского кота - я подозревал.


 
vuk ©   (2014-02-25 23:34) [196]

to жена полковника Вагина   (25.02.14 23:32) [195]:

> Интересно как же без наследования поиметь разнородные объекты?

Навскидку в Delphi имеем еще два способа:
1. Интерфейсы
2. COM Automation


 
DVM ©   (2014-02-25 23:36) [197]


> vuk ©   (25.02.14 23:27) [192]


> Полиморфизм, в принципе, может быть без наследования. Наследование
> - это один из способов его реализации.

Вероятно. Но для ООП языков наследование самый распространенный способ.


> жена полковника Вагина   (25.02.14 23:28) [193]
> ну а я не знаю что такое динамический/статический полиморфизм.
>

Вообще то это общепринятая терминология. Динамический полиморфизм.


 
жена полковника Вагина   (2014-02-25 23:37) [198]

ну если нет наследования, у вас будет ровно один тип интерфейса.
а все ком-объекты они и так для делфи одного типа (толеауто)

итак где же здесь разнородные объекты возьмутся?
если нет наследования?


 
жена полковника Вагина   (2014-02-25 23:42) [199]

плюс интересно было бы поглядеть реализацию переопределенных методов интерфейса при отсутствии наследования.

сам интерфейс реализации не содержит.
реализация делается в классе, наследующем интерфейс.
а наследования у нас тут нет (ну мы тут рассматриваем навязанный мне случай когда наследования нет)


 
DVM ©   (2014-02-25 23:42) [200]


> жена полковника Вагина   (25.02.14 23:26) [190]


> полиморфизм в обоих случаях живет и действует.
>
> ему все равно как происходит диспетчеризация методов.
> он не для этого придуман.
>
>

Есть такой признак полиморфизма:

Функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа не зная об этом.

Если просто замещать в наследниках методы базового класса методами с теми же названиями, то это требование не выполняется - полиморфизма не будет.



Страницы: 1 2 3 4 5 6 7 8 9 
10 вся ветка

Форум: "Прочее";
Текущий архив: 2014.10.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.82 MB
Время: 0.047 c
2-1382695991
JohnKorsh
2013-10-25 14:13
2014.10.05
Обработка исключений


8-1235415285
Кошкин
2009-02-23 21:54
2014.10.05
Модель в редакторе и в программе


2-1382614616
qwerty123
2013-10-24 15:36
2014.10.05
ListView


15-1393261182
Sammi
2014-02-24 20:59
2014.10.05
Перезаписывание файла БЕЗ пересоздания


15-1393262712
Дмитрий СС
2014-02-24 21:25
2014.10.05
Trial





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский