C++: Можно ли инициализировать boost::scoped_ptr внутри конструктора?

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

2 ответа

Решение

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

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

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

Другие вопросы по тегам