-
> > Смеешься, откуда компилятор решит в каком наследнике ты > решил перекрыть метод. > А что делать с любителями TStrings.Create >
Я не про компилятор. Ну наверное надо бы для этого хранить в RTTI имена методов. А для любителей TStrings.Create - писать более понятное сообщение "это Абстрактный класс"
В любом случае этого уже никто не сделает :)
-
> DiamondShark (14.05.2008 14:36:59) [119]
С пятью, поскольку правилно ДРОВА
-
> Anatoly Podgoretsky © (14.05.08 14:31) [117] > > DiamondShark (14.05.2008 14:21:54) [114] > > А про классовые ссылки слышал?
И таки шо? Это серьёзный повод оставить противоречивость в языке?
Вот почему-то в НЕТ есть и классовые ссылки, и абстрактные методы. Однако ж, это не мешает получать и ошибку компиляции, при статическом инстанцировании, и рантайм исключение при динамическом инстанцировании абстрактных классов.
-
> Ega23 © (14.05.08 14:20) [113]
Есть какая-то принципиальная разница? Можно на любом языке переписать. И на Дельфи тоже. Количество строчек только чуть возрастет, качественно ничего не изменится.
-
> DiamondShark © (14.05.08 15:01) [122] > > > Anatoly Podgoretsky © (14.05.08 14:31) [117] > > > DiamondShark (14.05.2008 14:21:54) [114] > > > > А про классовые ссылки слышал? > > И таки шо? > Это серьёзный повод оставить противоречивость в языке? > > Вот почему-то в НЕТ есть и классовые ссылки,
В .NET нет классовых ссылок.
-
> DiamondShark (14.05.2008 15:01:02) [122]
Потому что хоть автор и тот же, но НЕТ вариант он писал позже, тоже и про его последователей.
-
> DiamondShark (14.05.2008 15:01:02) [122]
Кстати это не в коем случае не должна быть ошибка компиляции, максимум предпреждение, или даже совет.
-
Удалено модератором
-
Удалено модератором
-
> 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]
А нафиг мне перед тобой что-то подкреплять?
Помедетируй над тем, к чему вообще Podgoretsky упомянул классовые ссылки. Как дойдёт, так у тебя и все вопросы отпадут, и желание вязяться к словам.
-
> oxffff © (14.05.08 16:09) [130]
кстати, а как подобное в .NET, например в синтаксисе C#, реализуется? тоесть, аналог, в делфи, инстанцирования объекта по классовой ссылке с виртуальным конструктором
я не докапываюсь, просто я в .NET не искушен, только только под стол пешком хожу )
-
> Palladin © (14.05.08 16:19) [132] > > oxffff © (14.05.08 16:09) [130] > > кстати, а как подобное в .NET, например в синтаксисе C#, > реализуется? тоесть, аналог, в делфи, инстанцирования объекта > по классовой ссылке с виртуальным конструктором
Activator.CreateInstance, как вариант. Есть и другие.
Виртуальность конструктора, как понятно, при таком подходе не требуется.
-
> кстати, а как подобное в .NET, например в синтаксисе C#, > реализуется? тоесть, аналог, в делфи, инстанцирования объекта > по классовой ссылке с виртуальным конструктором
Э...через reflection и Activator.CreateInstance
-
> Palladin © (14.05.08 16:19) [132]
Прямых IL инструкций для этого нет. Достигается вызовом библиотеки .NET и передачей объекта типа и параметров конструктора.
-
мда... до туда я еще не дочитал ).. не буду торопить события...
-
> я не докапываюсь, просто я в .NET не искушен, только только > под стол пешком хожу )
Да я тоже, все читаю читаю про .NET. Но блин как то не тянет. Хотя искушение есть. Но по большей части из-за приятных языковых конструкций С# и Oxygene.
-
> Но по большей части из-за приятных языковых конструкций > С#
та же фикня...
-
> Palladin © (14.05.08 16:36) [136] > мда... до туда я еще не дочитал ).. не буду торопить события. > ..
Рихтера можно для начала почитать. Всех остальных в топку (Ватсоны, Шмансоны, Шилд и др.)
НО!!! рекомендую ECMA 335 и Expert .NET IL Assembler.
|