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

magician

Passar argumentos por referencia

4 mensagens neste tópico

Ora bem a minha questão é algo estranha lol mas passo a explicar temos este header

class A{
    string& getNome();
    int getID();
};

ou seja uma classe que tem 1 método que retorna uma referencia a uma string do objecto e um inteiro por valor.

depois temos algo tipo

class B{
    string b1;
    int b2;
    B(A& a){
        b1 = a.getNome();
        b2 = a.getID();
    }
};

Ou seja uma classe que recebe por referencia um objecto de A e que guarda alguns dos valores de A como seus.

A minha questão é ao ter algo tipo

B bb(A);

Se apagar A os valores de b1 e b2 vão se perder ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O valor b2 não porque o seu valor é apenas uma cópia de a.getID().

Imagino que o getNome() seja simplesmente um "return nome;" onde "nome" é um atributo da classe A. Assim, penso que o valor que b1 referencia se perde porque este deixa de existir.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se assim for e assumindo que não posso alterar a classe A como posso fazer para que o valor de b2 não se perca?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu estive a fazer umas experiências e o valor de b1 não foi perdido. O comportamento do programa não foi o que eu esperava.

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