PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum poo e interfaces #367051

11/12/2008

0

Um colega me disse que só de usar interfaces num programa delphi você já está usando com. Isso é verdade ou interfaces é um recurso da linguagem (para implementar a POO) e não da plataforma?

pergunto isso porque outras linguagens OO tem interfaces (java, C#) e para ser oo deveriam ter mesmo.

Outra coisa: no help diz que um guid para uma interface é opcional.

mas para que serve uma interface sem guid?

Imagina que eu tenho um objeto instanciado que implementa uma interface e eu quero passar ele para uma variavel do tipo da minha interface.

se a interface não tiver guid, não consigo fazer x := (meuObj as MinhaInterface).

dá erro de ´operator not aplicable to this operand type.´


Vitor Rubio

Vitor Rubio

Responder

Posts

11/12/2008

Vitor Rubio

digamos ainda que meuObj é um objeto do tipo TinterfacedObject, mas eu não sei de onde veio, pode ter sido passado como parametro, pode ter sido criado por um factory method ou pode ser criado dinamicamente por classes persistentes registradas, que registro com registerclass e recupero atraves de uma string.

Então meuObj não é diretamente do tipo que implementa essa interface (a referencia), embora o objeto instanciado apontado por ele seja.
Meuobj é um TinterfacedObject, um ancestral comum.

Porque interfaces sem guid não permitem o typecast e interfaces com guid permitem?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar