Clayton Bonelli wrote:

> Desculpe ser chato quanto a isso, ou mesmo muito purista do conceito.
> 
> Vejamos o seguinte: por definicao um ponteiro corresponde ao endereco onde 
> uma informacao se encontra na memoria, sendo assim, uma declaracao como a 
> seguinte:
> 
> var
>   x : ^Integer;
> 
> significa que a variavel "X" possui dentro de si, o endereco onde um integer 
> (a informacao) esta localizado na memoria.
> 
> Por outro lado, a definicao abaixo:
> 
> var
>    x : TButton;
> 
> significa que "x" eh uma referencia, nao um ponteiro, para uma instancia da 
> class TButton. Qual a diferenca entre referencia de objetos e ponteiros? 
> Ponteiro aponta para onde a informacao esta na memoria. Referencia de 
> objetos eh um endereco que PODE ser o local na memoria onde a informacao 
> esta localizada, como PODE ser o endereco de uma estrutura de memoria que 
> conteria o endereco do botao (TButton). Eh a implementacao da linguagem que 
> vai determinar se uma referencia de objeto funciona exatamente igual ao 
> conceito de um ponteiro, ou a referencia conteria dentro de si o endereco de 
> alguma outra coisa. Esta outra coisa seria uma estrutura que conteria o 
> endereco da informacao. Dizer que um objeto eh um ponteiro nao esta 
> totalmente correto. Se for pensar apenas que ponteiros e referencias de 
> objeto, possuem dentro de si enderecos de memoria, entao os conceitos sao 
> iguais. Mas, se formos analisar a semantica da coisa toda, os conceitos sao 
> diferentes.
> 
> Resumindo de forma mais simples: Um ponteiro aponta diretamente para a 
> informacao; Uma referencia de objetos, seria um ponteiro de ponteiros.
> 
> Desculpe pel e-mail tao grande

Clayton,

uma classe é um ponteiro porque aponta para um objeto. Um objeto não é 
ponteiro, objeto é objeto. Você está certo ao dizer que uma classe pode 
apontar para algo que não é exatamente um TButton (citando seu exemplo), 
mas irá apontar para uma estrutura semelhante (uma super-classe de 
TButton), mas aponta, o alvo será um objeto, portanto o seu 'x' será um 
ponteiro.

Eu ainda acabei por não compreender direito o que você quer dizer com 
referência de objetos. Pra mim, dizer 'uma referência a uma instância de 
TButton' é o mesmo que dizer 'um ponteiro para uma instância de TButton' 
(ou seja, para um objeto). Estou utilizando os conceitos do Object Pascal.


--
João Morais


-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a