Конференция "Прочее" » Филосовский вопрос
 
  • Style © (14.05.08 15:00) [120]

    >
    > Смеешься, откуда компилятор решит в каком наследнике ты
    > решил перекрыть метод.
    > А что делать с любителями TStrings.Create
    >


    Я не про компилятор.
    Ну наверное надо бы для этого хранить в RTTI имена методов.
    А для любителей TStrings.Create - писать более понятное сообщение "это Абстрактный класс"

    В любом случае этого уже никто не сделает :)
  • Anatoly Podgoretsky © (14.05.08 15:01) [121]
    > DiamondShark  (14.05.2008 14:36:59)  [119]

    С пятью, поскольку правилно ДРОВА
  • DiamondShark © (14.05.08 15:01) [122]

    > Anatoly Podgoretsky ©   (14.05.08 14:31) [117]
    > > DiamondShark  (14.05.2008 14:21:54)  [114]
    >
    > А про классовые ссылки слышал?

    И таки шо?
    Это серьёзный повод оставить противоречивость в языке?

    Вот почему-то в НЕТ есть и классовые ссылки, и абстрактные методы.
    Однако ж, это не мешает получать и ошибку компиляции, при статическом инстанцировании, и рантайм исключение при динамическом инстанцировании абстрактных классов.
  • Zeqfreed © (14.05.08 15:07) [123]
    > Ega23 ©   (14.05.08 14:20) [113]

    Есть какая-то принципиальная разница? Можно на любом языке переписать. И на Дельфи тоже. Количество строчек только чуть возрастет, качественно ничего не изменится.
  • oxffff © (14.05.08 15:08) [124]

    > DiamondShark ©   (14.05.08 15:01) [122]
    >
    > > Anatoly Podgoretsky ©   (14.05.08 14:31) [117]
    > > > DiamondShark  (14.05.2008 14:21:54)  [114]
    > >
    > > А про классовые ссылки слышал?
    >
    > И таки шо?
    > Это серьёзный повод оставить противоречивость в языке?
    >
    > Вот почему-то в НЕТ есть и классовые ссылки,


    В .NET нет классовых ссылок.
  • Anatoly Podgoretsky © (14.05.08 15:10) [125]
    > DiamondShark  (14.05.2008 15:01:02)  [122]

    Потому что хоть автор и тот же, но НЕТ вариант он писал позже, тоже и про его последователей.
  • Anatoly Podgoretsky © (14.05.08 15:11) [126]
    > DiamondShark  (14.05.2008 15:01:02)  [122]

    Кстати это не в коем случае не должна быть ошибка компиляции, максимум предпреждение, или даже совет.
  • DiamondShark © (14.05.08 15:54) [127]
    Удалено модератором
  • Palladin © (14.05.08 15:59) [128]
    Удалено модератором
  • DiamondShark © (14.05.08 16:05) [129]

    > Anatoly Podgoretsky ©   (14.05.08 15:10) [125]
    > > DiamondShark  (14.05.2008 15:01:02)  [122]
    >
    > Потому что хоть автор и тот же, но НЕТ вариант он писал
    > позже, тоже и про его последователей.

    Это уже прикладная конспирология. Чем он там руководствовался на самом деле мы теперь только гадать можем.

    Но всё равно, как ни крути, раздолбайство и получается.
    В Ц++, который всяко раньше Дельфи появился, абстрактные классы инстанциировать нельзя.
    Так что повод задуматься был.


    > Anatoly Podgoretsky ©   (14.05.08 15:11) [126]
    > > DiamondShark  (14.05.2008 15:01:02)  [122]
    >
    > Кстати это не в коем случае не должна быть ошибка компиляции,
    >  максимум предпреждение, или даже совет.

    Избыточность получается.
    Сначала компилятор проверяет на абстрактность, чтобы выдать сообщение, всё равно генерит код-затычку, а потом затычка в рантайме ругается.
    Куда как проще вообще не генерить код, который всё равно работать не способен, и (!) об этом известно на этапе компиляции.

    Кстати, варнингов быть не должно вообще. 99% варнингов -- это грубые логические ошибки. Генерить такой исполняемый код бессмысленно, он всё равно в рантайме свалится.
  • oxffff © (14.05.08 16:09) [130]
    Удалено модератором
  • DiamondShark © (14.05.08 16:17) [131]

    > oxffff ©   (14.05.08 16:09) [130]

    А нафиг мне перед тобой что-то подкреплять?

    Помедетируй над тем, к чему вообще Podgoretsky упомянул классовые ссылки.
    Как дойдёт, так у тебя и все вопросы отпадут, и желание вязяться к словам.
  • Palladin © (14.05.08 16:19) [132]

    > oxffff ©   (14.05.08 16:09) [130]

    кстати, а как подобное в .NET, например в синтаксисе C#, реализуется? тоесть, аналог, в делфи, инстанцирования объекта по классовой ссылке с виртуальным конструктором

    я не докапываюсь, просто я в .NET не искушен, только только под стол пешком хожу )
  • DiamondShark © (14.05.08 16:23) [133]

    > Palladin ©   (14.05.08 16:19) [132]
    > > oxffff ©   (14.05.08 16:09) [130]
    >
    > кстати, а как подобное в .NET, например в синтаксисе C#,
    >  реализуется? тоесть, аналог, в делфи, инстанцирования объекта
    > по классовой ссылке с виртуальным конструктором

    Activator.CreateInstance, как вариант. Есть и другие.

    Виртуальность конструктора, как понятно, при таком подходе не требуется.
  • Игорь Шевченко © (14.05.08 16:24) [134]

    > кстати, а как подобное в .NET, например в синтаксисе C#,
    >  реализуется? тоесть, аналог, в делфи, инстанцирования объекта
    > по классовой ссылке с виртуальным конструктором


    Э...через reflection и Activator.CreateInstance
  • oxffff © (14.05.08 16:34) [135]

    > Palladin ©   (14.05.08 16:19) [132]


    Прямых IL инструкций для этого нет.
    Достигается вызовом библиотеки .NET и передачей объекта типа
    и параметров конструктора.
  • Palladin © (14.05.08 16:36) [136]
    мда... до туда я еще не дочитал ).. не буду торопить события...
  • oxffff © (14.05.08 16:37) [137]

    > я не докапываюсь, просто я в .NET не искушен, только только
    > под стол пешком хожу )


    Да я тоже, все читаю читаю про .NET.
    Но блин как то не тянет. Хотя искушение есть.
    Но по большей части из-за приятных языковых конструкций С# и Oxygene.
  • Palladin © (14.05.08 16:38) [138]

    > Но по большей части из-за приятных языковых конструкций
    > С#

    та же фикня...
  • oxffff © (14.05.08 16:40) [139]

    > Palladin ©   (14.05.08 16:36) [136]
    > мда... до туда я еще не дочитал ).. не буду торопить события.
    > ..


    Рихтера можно для начала почитать.
    Всех остальных в топку (Ватсоны, Шмансоны, Шилд и др.)

    НО!!! рекомендую ECMA 335 и Expert .NET IL Assembler.
 
Конференция "Прочее" » Филосовский вопрос
Есть новые Нет новых   [134435   +13][b:0.001][p:0]