none
Destructors and Finalizers RRS feed

  • Pergunta

  • Pessoal,


    Um exemplo. Eu tenho uma classe A e instanciei no construtor um objeto B, como segue:

     
    class A { 
     
    public
     
    A(){ this->ptrB = gcnew B(); } 
     
    ~A(){ this->!A(); } 
     
    !A(){ delete this->ptrB; 
          System::GC::Collect(); 
        } 
     
    private
     
    B ^ptrB; 
     
     


    A minha dúvida é:

    se eu fizer delete this->ptrB o que acontece? Visto que essa é a única instância de B em todo o código.
    Caso este objeto apontado por ptrB seja deletado, eu posso depois fazer uma nova instância de B para o mesmo ponteiro (ptrB) ?


    e dentro do Finalizer eu forcei a chamada do coletor de lixo, isso é uma boa prática ou não?


    Eduardo.


    quinta-feira, 5 de fevereiro de 2009 03:41

Respostas

Todas as Respostas