• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

kanixe

Operador &

2 mensagens neste tópico

Não sendo muito experiente na matéria, até agora sempre utilizei o operador referência quando queria dar uma atribuição a um ponteiro, colocando o operador antes da variável, para assim obter o seu endereço:

p ponteiro:

p= &a

Depareime com a seguinte situação:

Classe&      MyClass::operator = (const Classe &x)) {...}

Ao realizar um overload de operadores numa classe. A questão é que não faz sentido para mim por o operador referencia numa declaração. Fazia sim por um ponteiro, e depois enviar a variavel co ma referencia para o argumento.

Podem-me explicar melhor esta situação? O que aocntece? a variável x ficará com o mesmo endereço da colocado no argumento?

É um caso particular?

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que acontece é que X passa a ser um "alias" para a variável que enviares. Sempre que te referes a X estás na realidade a trabalhar na variável enviada para a função. Basicamente passas a ter 2 nomes para a mesma coisa.

Torna-se mais simples trabalhar com argumentos assim do que com apontadores. Este é um funcionamento muito similar ao funcionamento por defeito de java ou C#.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora