Daniël Mantione wrote:
Op Thu, 11 Jun 2009, schreef Michael Van Canneyt:
On Thu, 11 Jun 2009, Jonas Maebe wrote:
I would think it is a natural extension of procedural overloading ?
It's not that simple. Properties can be both hidden variable access as
well as procedure access. Variable overloading is not allowed, because
it causes a lot of issues, i.e.:
var a:word;
a:char;
begin
a:=1;
a:='!';
writeln(a); {what does this mean??}
end;
Property overloading gets you the same issues, i.e. in the example
above you could replace both variables with properties and answer the
same question.
Considering this, I do not think it can considered a logical extension
of procedure overloading.
Good point.
However the example above (even so you use the setter [assign to the
property] instead of reading), is the same as overloading *functions* by
result.
You can not overload functions by result; still you can overload them by
arguments.
So consistency of overloading functions is *not* defined by being able
to use every bit of information on the function for the overloading; but
only selected (the parameters passed to the function).
On properties this question was about the index given to a property
(number and type of indexes). I do agree, it can not be about the type
of the property itself.
Martin
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel