Author |
Message |
bar
Senior
Joined: 07 Aug 2006 10:18 Posts: 185
|
Да, неотъемлимая. Но дело не в том чтобы избавится, а в том чтобы... Ненужный полиморфизм просто. Сбивающий с толку. Но кстати этого можно избежать, если не использовать перегрузку на этих виртуальных методах, то есть давать более подробные названия: На возможностях API этих классов оно никак не скажется, а вот код методов станет более очевидным. А вот это, как раз, как я понял обдумав, офигенная фишка метода. Все эти методы объявляются в базовом как абстрактные, и если добавляя новый примитив мы, где-то в производном классе забыли дописать метод, то мы получим ошибку компиляции. В том же lisp'е, забывчивость приводит к run-time ошибками. Что не очень удобно данном случае. С тегированием будет то же самое. С DoubleDispatch не скажу -- до конца не дочитал, и не знаю чем там дело кончилось.
Ещё один плюс такого подхода -- нет необходимости ни в rtti, ни в тегировании.
Склоняюсь именно к нему.
|
16 Sep 2012 03:56 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 863
|
А вот это, мне кажется, делать не надо. Чаще всего ты будешь иметь дело именно с указателем на абстрактный primitive. Например список объектов для отрисовки. Поскольку тип примитива неизвестен, то неизвестно и какой из методов надо вызывать. А если метод один единственный, то и проблем нет.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
16 Sep 2012 04:15 |
|
|
bar
Senior
Joined: 07 Aug 2006 10:18 Posts: 185
|
Всё известно, перегрузка ведь не даёт ничего кроме синтаксических особенностей записи вызова функции. Если у нас есть point* мы можем вызвать point_distance, если есть primitive* мы можем вызвать primitive_distance. А какого именно типа у нас указатель хранит адрес примитива мы всегда знаем.
|
16 Sep 2012 16:43 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 863
|
Но, согласись, в основной программе кроме primitive_distance ты ничего другого не будешь использовать. Или ты хочешь отказаться от полиморфизма и хранить объекты каждого класса в отдельных коллекциях (которые хранят указатели на конкретный класс) и потом все пары обрабатывать?
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
16 Sep 2012 23:07 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Джентльмены, извините за небольшой оффтоп, но люди вы эрудированные,
а меня вдруг очень заинтересовал следующий вопрос.
А под i8080(Z80) были какие-либо симуляторы электронных схем?
_________________ iLavr
|
16 Sep 2012 23:21 |
|
|
He3HauKo
Senior
Joined: 09 Aug 2012 11:20 Posts: 176 Location: 95.135.174.189
|
Для симуляции не знаю, а вод для разводки дорожек точно было!
_________________Хочу стать всезнайкой
|
17 Sep 2012 02:28 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да это все знают - Лэйаут... и его модификации...
А вот были ли какие-либо симуляторы электронных схем под i8080(Z80)?
Пусть даже самые простые...
_________________ iLavr
|
17 Sep 2012 02:56 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22589 Location: Silicon Valley
|
Ща сделаем
|
17 Sep 2012 06:49 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
" Верю, ибо абсурдно..." ( щютка )
А серьёзно - под Спецтрумом там или под СР/М?
_________________ iLavr
|
17 Sep 2012 10:03 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Вот, к примеру, нашарил:
MicroCap 3.0 — написанный на QuickBasic 3.0, который работал на XT.
Говорят, даже шевелился!
Значит и для i8080( Z80) может быть не всё так уж грустно?
PS. Пошустрил я в сети этот Micro-Cap III на Basюc-е - так ведь нету!!!
_________________ iLavr
|
17 Sep 2012 18:02 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А в принципе, как человек, имеющий опыт - ты как считаешь, ресурсов
популярных 8-биток могло хватить для эмуляции схем, или это всё ж " абсурдно" ?
_________________ iLavr
|
18 Sep 2012 08:19 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22589 Location: Silicon Valley
|
простых цифровых - запросто
а вот SPICE не полетит
|
18 Sep 2012 09:10 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Сомнения меня гложут несколько... считал я на Васюке " Специалиста" довольно
серьёзные многоконтурные схемы, причем Рунге-Куттом 4-го порядка.
Это было также медленно, как MicroCap 3.0 на ХТ - но считало вполне честно.
Конечно, это не SPICE, но кто сказал, что SPICE - форевер?
Вон этот MicroCap 3.0, оказывается, вобще Эйлером считал...
Кстати - попался мне ещё один не- SPICE симулятор по гнутой лицензии...
Программа анализа электронных схем Xlab 4.0
Xlab 4.0 распространяется бесплатно (GNU General Public License, GPL)
Единственное - что он польский... но мож исходники будут интересны...
_________________ iLavr
|
18 Sep 2012 09:36 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22589 Location: Silicon Valley
|
|
17 Nov 2012 10:22 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
_________________ iLavr
|
17 Nov 2012 11:09 |
|
|