Когда обьекту с перегрузкой операторов сделал метод виртуальным, то при его вызове возникает 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;
Что я делаю не так?