-
> Да хоть затекающими. :) Ворнинги - это зло.
А кто спорит? Но жизнь - она не чОрная и не белая. И даже не серая. Там больше, чем RGB :)
-
Абстрактные классы это все конечно нужно ) Но вот одного не пойму, не ужели не могли сделать сообщение об ошибке абстрактных методов более подробным - т.е. "Abstract Error - не перекрыт такой-то там метод". А то "кучу" полезной информации несет в себе сообщение "Abstract Error", с таким же успехом могли бы и послать куда-нибудь разработчика 8-)
-
>[101] Style © (2008-05-14 12:38:00)
ну так куда-нибудь и послали.
---
Understanding is not required. Only obedience.
-
> ну так куда-нибудь и послали.
именно так я и воспринимаю данное сообщение )
-
>[103] Style © (2008-05-14 12:48:00)
нормальная очередная фича дельфи, которую придумали, но не доделали.
---
Understanding is not required. Only obedience.
-
> Palladin (14.05.2008 10:46:33) [93]
Что же тогда у него делают за Error
-
> Ega23 (14.05.2008 11:36:37) [97]
Вот поэтому и бывший.
-
> Style (14.05.2008 12:38:41) [101]
Смеешься, откуда компилятор решит в каком наследнике ты решил перекрыть метод.
А что делать с любителями TStrings.Create
-
> А что делать с любителями TStrings.Create
Запретить создание абстрактных классов на этапе компиляции.
И никто не уйдёт обиженным.
-
> Anatoly Podgoretsky © (14.05.08 13:40) [105]
эцых с гвоздями на час :)
-
> Ega23 © (14.05.08 13:46) [108]
представляешь на что ты разрабочиков делфи подпрягаешь? :)
Type
TBaseCClass=Class of TBase;
TBase=Class
Public
Procedure a; Virtual; Abstract;
Procedure b; Virtual; Abstract;
End;
TPre=Class(TBase)
Public
Procedure a; Override;
End;
TCompleted=Class(TPre)
Public
Procedure b; Override;
End;
var
c:TBaseClass;
begin
c:=GetNeededClass;
cc:=c.Create;
Try
cc.a;
Finally
cc.free;
End;
end;
-
на обучение компилятора общения с астралом ) бо класс определится только в RT )
-
Ну вот. Так и знал, что [42] было просто взятием на понт. Только не понятно зачем игнорировать напрочь.
-
> Ну вот. Так и знал, что [42] было просто взятием на понт.
> Только не понятно зачем игнорировать напрочь.
мы же за Delphi говорим, а не за Питон...
-
> Ega23 © (13.05.08 20:43)
> А зачм в Delphi нужна директива abstract? В чём её прелесть?
> Почему не сделать виртуальный метод с пустым телом
Пототому что абстрактный метод и пустой метод -- это разные вещи.
Другой вопрос, почему оставили возможность инстанциирования классов с абстрактными методами? Вот это уже разгильдяйство.
-
> Ega23 © (13.05.08 20:58) [7]
>
> Тогда уж проще действительно интерфейс объявить, без реализации
> его методов ты и не скомпилируешься...
А куда при этом коде реюз пойдёт?
TSortedList = class
procedure Add(item: TObject);
function Compare(item1, item2: TObject): integer; virtual; abstract;
end;
procedure TSortedList.Add;
begin
// тут ищем куда впердолить элемент, используя Compare
end;
-
> Пототому что абстрактный метод и пустой метод -- это разные
> вещи.
Да знаю я...
> Другой вопрос, почему оставили возможность инстанциирования
> классов с абстрактными методами? Вот это уже разгильдяйство.
Вот и мне непонятно. Сказал "А", скажи и "Б".
-
> DiamondShark (14.05.2008 14:21:54) [114]
А про классовые ссылки слышал?
-
> Ega23 (14.05.2008 14:27:56) [116]
Не понятно, чего страшного и криминального в создание такого класса, не надо просто вызывать абстрактный метод без реализации.
Хотя это и плохо, но не запрещено.
-
> Германн © (14.05.08 02:00) [61]
> Гложет меня смутное сомнение, что "ПионЭры" вообще ничего
> не пишут!
На заборах они пишут. Слово "МИР" с тремя ошибками.