Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.11.17;
Скачать: CL | DM;

Вниз

Templates and Inheritance   Найти похожие ветки 

 
Exception   (2013-02-14 09:21) [0]

type
 TValue = class(TObject)
 public
   X: Integer;
 end;

 TValueHolder<TType: TValue> = class(TObject)
 private
   V: TType;
 public
   procedure Copy(AHolder: TValueHolder<TValue>);
 end;

 TValue2 = class(TValue)
 end;

 TValueHolder2 = class(TValueHolder<TValue2>)
 end;

{ TValueHolder<TType> }

procedure TValueHolder<TType>.Copy(AHolder: TValueHolder<TValue>);
begin
 V.X := AHolder.V.X;
end;

{ TForm2 }

procedure TForm2.Button1Click(Sender: TObject);
var
 Holder: TValueHolder<TValue2>;
 Holder2: TValueHolder2;
begin
 Holder := TValueHolder<TValue2>.Create;
 Holder2 := TValueHolder2.Create;

 Holder.Copy(Holder2); // [dcc32 Error] Unit2.pas(60): E2010 Incompatible types: "Unit2.TValueHolder<Unit2.TValue>" and "TValueHolder2"
end;


Delphi XE3

Why-у-у-у-у? (С) Annie Lennox


 
Плохиш ©   (2013-02-14 12:35) [1]

Потому что это два разных типа. Прочитай документацию.


 
Exception   (2013-02-14 14:28) [2]

> Плохиш ©   (14.02.13 12:35) [1]

Да ну...

Метод procedure Copy(AHolder: TValueHolder<TValue>); должен принимать любого наследника класа TValueHolder с параметрическим типом-наследником класса TValue.
TValue2 унаследован от TValue.
TValueHolder2 унаследован от TValueHolder<TValue>.

Или наследование в шаблонах отменили?
Это временно, пока компилятор не допилили?
Или навсегда?


 
знайка   (2013-02-14 15:00) [3]


> TValueHolder2 унаследован от TValueHolder<TValue>.
это вам только кажется.



Страницы: 1 вся ветка

Текущий архив: 2013.11.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.006 c
6-1269966380
ZeTToG350
2010-03-30 20:26
2013.11.17
Определение MAC


2-1360753929
ddadda
2013-02-13 15:12
2013.11.17
LoadJPGFile из TFastDIB


15-1370005892
"Добрый Сок"
2013-05-31 17:11
2013.11.17
Расширение FF "Инструмент разработчика" для IE. Посоветуйте


1-1318238199
Istrafiloff
2011-10-10 13:16
2013.11.17
TMainMenu. Проблемы.


15-1369331388
Rouse_
2013-05-23 21:49
2013.11.17
Битая ревизия в hg mercurial