Quote Originariamente inviata da shodan Visualizza il messaggio
Ancora meglio usando smart pointer (qui uso std::unique_ptr).
Ma quindi tendenzialmente, se ho dati membro di una classe dichiarati come puntatori, conviene definirli come smart pointer, così evito nel distruttore di dover richiamare il delete, corretto?

codice:
class Classe
{
  public:
    //costruttore, ecc;
    //il distruttore è
    ~Classe(){delete(puntatore);/*altre eventuali cose*/};
  private:
    //quello che serve
    tipoDelPuntatore* puntatore;
}
diventa
codice:
class Classe
{
  public:
    //costruttore, ecc;
    //il distruttore è
    ~Classe(){/*altre eventuali cose, ma delete(puntatore) non dovrebbe servire più*/};
  private:
    //quello che serve
    std::unique_ptr<tipoDelPuntatore> puntatore;
}
Ne approfitto per una ulteriore domanda: se il dato membro di tipo puntatore sarà usato solo "interno" alla classe, uso unique_ptr, se invece sarà impiegato anche da qualche altro oggetto, uso shared_ptr, corretto?

Grazie, grazie, grazie