2011-01-14 11 views

Odpowiedz

24

Tak. możesz użyć funkcji członkowskiej reset().

class foo { 
public: 
    foo() 
    { 
     p.reset(new bar()); 
    } 
private: 
    boost::scoped_ptr<bar> p; 
}; 
+1

Czy jest możliwe zainicjowanie go na liście inicjalizacji? Jeśli tak to jak? – User

6

scoped_ptr ma metodę scoped_ptr<T>::reset(T * p=0) który można zadzwonić w klasie konstruktora zamykając za.