Estou fazendo um sistema em C++ para um projeto e estou tendo um problema que acho que sei qual é a causa, mas não tenho certeza e não sei verificar isso.
A dúvida é a seguinte: supondo que temos a ClasseA, com seus atributos e etc.
Também temos a ClasseB, que possui uma lista de ponteiros da ClasseA.
Essa lista serve para que instâncias diferentes de uma ClasseC possam apontar para uma mesma instância da ClasseA.
O problema é que quando crio uma nova referência de uma ClasseA (ClasseA* c = new(ClasseA); ) e adiciono isso à lista na ClasseB, o compilador da um warning dizendo que a referência ao objeto c é temporário, acho que porque quando acabar o escopo do método em que ele é instanciado deixará de existir.
E é aí que entra o ponto principal do problema: por estar sendo referenciado na lista na ClasseB, o compilador entende que aquele pedaço de memória ainda precisa estar reservado ou depois de um tempo aquela referência criada na ClasseB vai apontar para lixo?
Pergunta
Alex Hippler
Olá
Estou fazendo um sistema em C++ para um projeto e estou tendo um problema que acho que sei qual é a causa, mas não tenho certeza e não sei verificar isso.
A dúvida é a seguinte: supondo que temos a ClasseA, com seus atributos e etc.
Também temos a ClasseB, que possui uma lista de ponteiros da ClasseA.
Essa lista serve para que instâncias diferentes de uma ClasseC possam apontar para uma mesma instância da ClasseA.
O problema é que quando crio uma nova referência de uma ClasseA (ClasseA* c = new(ClasseA); ) e adiciono isso à lista na ClasseB, o compilador da um warning dizendo que a referência ao objeto c é temporário, acho que porque quando acabar o escopo do método em que ele é instanciado deixará de existir.
E é aí que entra o ponto principal do problema: por estar sendo referenciado na lista na ClasseB, o compilador entende que aquele pedaço de memória ainda precisa estar reservado ou depois de um tempo aquela referência criada na ClasseB vai apontar para lixo?
Obrigado!
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.