Posso inizializzare shared_ptr
con il valore NULL
?Inizializza boost :: shared_ptr su NULL
boost::shared_ptr<Type> s_obj(NULL);
Se no, allora come?
Posso inizializzare shared_ptr
con il valore NULL
?Inizializza boost :: shared_ptr su NULL
boost::shared_ptr<Type> s_obj(NULL);
Se no, allora come?
La costruzione di default lo fa per voi:
template<class T> class shared_ptr
{
public:
explicit shared_ptr(T * p = 0): px(p)
{
//Snip
}
//...
private:
T * px; // contained pointer
count_type * pn; // ptr to reference counter
};
Questa è la costruzione di default, cioè .:
boost::shared_ptr<Type> s_obj;
s_obj
ora detiene un puntatore nullo e valuta a Boolean false quando la verità-test;
Non è quello che costruisce di default? –
anche nullptr ha più senso di NULL se C++ 11 – paulm
Se il mio 'shared_ptr' ha già puntato su un oggetto quando l'ho assegnato con' NULL' (o '0'), il conteggio ref dell'oggetto decrementato è precedente? –