[fpc-pascal] Is it posible to implement more than one interface in a class defination?
Sven Barth
pascaldragon at googlemail.com
Sun Nov 14 18:11:48 CET 2010
On 14.11.2010 17:49, Graeme Geldenhuys wrote:
> * incomplete delegation (non existent in FPC 2.4.2)
I haven't used this for quite a long time, so I can't test it just
now... what are you missing?
> * No name resolution (function aliases) of conflicting interfaces
Ehhh... the following code compiles with 2.4.2 and even 2.4.0:
==== source begin ====
program interfacetest;
{$mode objfpc}
uses
SysUtils;
type
IMyInterface = interface
procedure Foo;
end;
TMyInterfacedObject = class(TInterfacedObject, IMyInterface)
public
procedure IMyInterface.Foo = Bar;
procedure Bar;
procedure Foo;
end;
procedure TMyInterfacedObject.Bar;
begin
Writeln('Bar');
end;
procedure TMyInterfacedObject.Foo;
begin
Writeln('Foo');
end;
var
t: TMyInterfacedObject;
i: IMyInterface;
begin
t := TMyInterfacedObject.Create;
try
i := t;
t.Foo;
i.Foo;
finally
t.Free;
end;
end.
==== source end ====
Output is:
==== output begin ====
Foo
Bar
An unhandled exception occurred at $08056B71 :
EInvalidPointer : Invalid pointer operation
$08056B71
==== output end ====
(I don't know currently where exactly that EInvalidPointer comes
from.... even a "t.AddRef" doesn't solve this...)
Regards,
Sven
More information about the fpc-pascal
mailing list