Guest --Higor -- Postado Julho 17, 2008 Denunciar Share Postado Julho 17, 2008 Alguém poderia me explicar quais as diferenças entre instancias uma classe das seguintes formas?Classe * ins = new Classe;Classe ins; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Julho 17, 2008 Denunciar Share Postado Julho 17, 2008 O primeiro é um pointer. É alocado no stack. (Me corrijam se eu estiver errado)O segundo é alocado no heap.Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --higor -- Postado Julho 17, 2008 Denunciar Share Postado Julho 17, 2008 Quando usar um e quando usar outro? Que tipos de métodos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 iSoron Postado Julho 17, 2008 Denunciar Share Postado Julho 17, 2008 Objetos alocados na pilha são perdidos assim que o escopo no qual eles estão inseridos termina. Por exemplo:int teste() { Classe ins; ... return 0; // ins é desalocado } Enquanto que: int teste() { Classe *ins = new Classe; ... return 0; // ins continua alocado em algum lugar da memória } Se você não fizer a desalocação, o objeto vai continuar na memória até o programa terminar de executar. Isso, às vezes, é útil. Por exemplo: Classe * cria_objeto() { Classe *ins = new Classe; ... return ins; }A versão sem ponteiros não funcionaria (ou funcionaria de maneira inconsistente), pois o objeto seria desalocado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest --Higor --
Alguém poderia me explicar quais as diferenças entre instancias uma classe das seguintes formas?
Classe * ins = new Classe;
Classe ins;
Link para o comentário
Compartilhar em outros sites
3 respostass 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.