Перегрузка операторов для обьектов с виртуальными методами
 Добавлено: 05.01.2014 15:21:39
Добавлено: 05.01.2014 15:21:39Здравствуйте. 
Когда обьекту с перегрузкой операторов сделал метод виртуальным, то при его вызове возникает Access Violation.
Вот обьект -
А вот здесь при вызове метода возникает ошибка -
Что я делаю не так?
			Когда обьекту с перегрузкой операторов сделал метод виртуальным, то при его вызове возникает Access Violation.
Вот обьект -
- Код: Выделить всё
- type tmyobject=object
 i:integer;
 constructor init;
 function get_string:string; virtual;
 end;
 operator +(c1,c2:tmyobject)r:tmyobject;
 implementation
 constructor tmyobject.init;
 begin
 i:=0;
 end;
 function tmyobject.get_string:string;
 begin
 result:=inttostr(i);
 end;
 operator +(c1,c2:tmyobject)r:tmyobject;
 begin
 r.i:=c1.i+c2.i;
 end;
А вот здесь при вызове метода возникает ошибка -
- Код: Выделить всё
- procedure TForm1.Button1Click(Sender: TObject);
 var x:tmyobject;
 begin
 x.init;
 x:=x+x;
 form1.Caption:=x.get_string;
 end;
Что я делаю не так?