Czy mogę zainicjować wartość shared_ptr
z wartością NULL
?Inicjowanie boost :: shared_ptr na NULL
boost::shared_ptr<Type> s_obj(NULL);
Jeśli nie, to w jaki sposób?
Czy mogę zainicjować wartość shared_ptr
z wartością NULL
?Inicjowanie boost :: shared_ptr na NULL
boost::shared_ptr<Type> s_obj(NULL);
Jeśli nie, to w jaki sposób?
Domyślna budowa robi to za ciebie:
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
};
To budowę domyślną, tj .:
boost::shared_ptr<Type> s_obj;
s_obj
posiada obecnie zerowy wskaźnik i ocenia się boolean fałszywy podczas testowania prawdy;
Czy to nie jest to, co robi domyślna konstrukcja? –
również nullptr ma więcej sensu niż NULL, jeśli C++ 11 – paulm
Jeśli moje 'shared_ptr' wskazywało już na obiekt, kiedy przydzieliłem go z' NULL' (lub '0'), czy liczba ref jest mniejsza od wcześniejszego obiektu? –