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