Fórum Dúvida sobre Overload, mesmas assinaturas ??? #274272
28/03/2005
0
type
TBanco = Class(TObject) { Package declarations }
//¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
private { Private declarations }
//¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
public { Public declarations }
// construtores e destrutores da classe
constructor create; virtual; abstract;
destructor destroy; virtual; abstract;
//¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
end;
var
Banco : TBanco;e a classe [b:6b04e8848c]filha[/b:6b04e8848c] chamado de [b:6b04e8848c]BancoFirebird[/b:6b04e8848c] abaixo:
type
// atributos principais do classe BancoFirebird
TBancoFirebird = Class(TBanco) { Package declarations }
//¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
private { Private declarations }
//¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
public { Public declarations }
// variáveis e membros
setPropertiesFirebird : TPropertiesFirebird;
// construtores e destrutores da classe
constructor create; override;
destructor destroy; override;
// carregando configurações específicas para conexão do banco de dados
function getConnectionParams : TPropertiesFirebird; overload;
function getConnectionParams : TStrings; overload;
function getConnectionProperties : TPropertiesFirebird;
//¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
end;
var
BancoFirebird : TBancoFirebird;
Resumindo. Quando tento compilar, ele me retorna um erro na classe filha como:
Sei que existe um problema quanto à declaração e acredito que isto só possa ser feito utilizando tipos de parâmetros passados dentro do método. Contudo, não sei como poderei fazer para resolver isto. Em java conseguiria, porque a JVM a teria a partir da assinatura do método, mas não estou muito bem lembrado como poderei fazê-lo em delphi. Se alguém puder me dar uma força agradeço!!!
:shock:
Meu chefe já pegou no meu pé, mais ainda não consegui o que faço!
Faelcavalcanti
Curtir tópico
+ 0Posts
28/03/2005
Massuda
Gostei + 0
28/03/2005
Kapak
procedure getConnectionParams(var Obj:TPropertiesFirebird); overload; procedure getConnectionParams(var Obj:TStrings); overload;
Gostei + 0
28/03/2005
Kapak
procedure getConnectionParams(var Obj:TPropertiesFirebird); overload; procedure getConnectionParams(var Obj:TStrings); overload;
Gostei + 0
28/03/2005
Faelcavalcanti
Pois é amigo, já estava prevendo isto. No meu caso foi uma tentativa de uma migração de código, estou tentando deixar parte de uma função genérica e por este motivo não estou conseguindo.
Mas quanto à :
Até fica legal, mas mesmo assim terei que declarar este tipo de objeto no escopo a ser utilizado, tipow :
procedure xxxx; var v_Objeto : TStrings; begin getConnectionParams(v_Objeto); end;
Não é como eu queria, pois terei que encapsular diversas vezes um mesmo objeto, na verdade é apenas um exemplo como está o meu código. Acho que a idéia no delphi é fazer desta forma mesmo. Mas obrigado!!!
Pensava que no Delphi a sobrecarga de métodos era possível a partir do seu retorno, o que também faz parte da assinatura do método. O que de fato é totalmente possível em Java.
:roll:
Mas valeu. Happing code for us!!!! Thanks!!!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)