Boost logo

Boost Users :

Subject: [Boost-users] scoped_ptr initialization
From: UberMongoose (mongoose7_at_[hidden])
Date: 2008-09-11 06:24:02


Hi All,

I'm new to Boost, and I've been taking a look at scoped pointers. Here's the
example from the boost documentation:

----------------------------------------------------------------------
#include <boost/scoped_ptr.hpp>
#include <iostream>

struct Shoe { ~Shoe() { std::cout << "Buckle my shoe\n"; } };

class MyClass {
    boost::scoped_ptr<int> ptr;
  public:
    MyClass() : ptr(new int) { *ptr = 0; }
    int add_one() { return ++*ptr; }
};

int main()
{
    boost::scoped_ptr<Shoe> x(new Shoe);
    MyClass my_instance;
    std::cout << my_instance.add_one() << '\n';
    std::cout << my_instance.add_one() << '\n';
}

----------------------------------------------------------------------

I notice that the creation of a new object for the scoped pointer has been
done before the MyClass constructor. However you can't declare the scoped
pointer as a member variable and then do something like this in a method:

protected:
scoped_pointer<ArbitaryObject> mPointerToObject;
....
// Later
mPointerToObject ( new ArbitaryObject() );

Why is that?

Thanks!

-- 
View this message in context: http://www.nabble.com/scoped_ptr-initialization-tp19431388p19431388.html
Sent from the Boost - Users mailing list archive at Nabble.com.

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net