[fpc-devel]assignment operator overloading

Stefan Ziegenbalg stefan.ziegenbalg at mailbox.tu-dresden.de
Sun Oct 22 01:47:12 CEST 2000


Hi,

i started to write an matrix unit. At the moment i am using a procedure
for assignment: 

procedure ma(var a:matrix; b:matrix); { b --> a }

I want to overload the assign operator, but i didnt work:

Here my question: is it possible to make overloading of "assignment for
equal types" and accessing to the destination variable possible?

here is a example:

type matrix=record
      n,m  : longint;
      pa   : ^double;
      end;

operator := ( b : matrix ) a : matrix;  
{ generates error: Impossible to overload assignment for equal types }
begin
if a.pt<>nil then freemem(a.pt,a.n*a.m*sozeof(double));  
{ generates warning: Function result does not seem to be set }
a.n:=b.n; a.m:=b.m;
getmem(a.pt,a.n*a.m*sizeof(double));
end;

Of course this would be a bad solution for a matrix unit (function
results ...). But a different way (using an internal list of matrices
and a counter for each list entry how often the matrix is used) makes it
possible to write an comfortable matrix unit.


Stefan


-- 
mailto:stefan.ziegenbalg at mailbox.tu-dresden.de
http://www.sziegenbalg.de




More information about the fpc-devel mailing list