Zitat von
shmia:
Das Mischen von Objekten und Interfaces kann unangenehme Folgen haben!!
In diesem Fall (bzw. jedem in dem Supports benutzt wird) schon.
Oft hat man aber eine Objektreferenz, bei der der Typ bereits ein bestimmtes Interface unterstützt.
Dann kann man problemlos die Objektreferenz an Methoden übergeben, die einen Interfacezeiger als "const" bekommen.
Delphi-Quellcode:
class procedure Miep.Mööp(const aInterfaceRef : IMyInterface);
begin
aInterfaceRef.DoSomething();
end;
var
objectRef : TMyClass;
begin
Miep.Mööp(objectRef);
Natürlich klappt das nicht mehr, wenn die Methode irgendwelche unkoscheren Dinge damit anstellt. (Zuweisen von Feldern, Weitergabe an Methode ohne "const", ...)