C ++: Можно ли инициализировать boost :: scoped_ptr внутри конструктора? - PullRequest
10 голосов
/ 14 января 2011

Может ли член класса типа boost::scoped_ptr быть инициализирован внутри конструктора класса?Как?
(нет в списке инициализации)

Ответы [ 2 ]

25 голосов
/ 14 января 2011

Да.Вы можете использовать функцию-член reset ().

class foo {
public:
    foo()
    {
         p.reset(new bar());
    }
private:
  boost::scoped_ptr<bar> p;
};
6 голосов
/ 14 января 2011

scoped_ptr имеет метод scoped_ptr<T>::reset(T * p=0), который вы можете вызвать в конструкторе вашего класса.

...