El vie, 28-01-2011 a las 14:46 +0100, Krzesimir Nowak escribió:
> 2011/1/28 Culpian Camilo Martin <[email protected]>:
> > ok, i'll try it, i have had some troubles doing this:
> >
> > class foo
> > {
> >        static ref_ptr<foo> create
> >        (
> >                return ref_ptr<foo>(new foo());
> >        );
> >        foo();
> >        ~foo();
> >        ref_ptr<foo> set_something()
> >        {
> >                //set something
> >
> >                return ref_ptr<foo>(this);
> >                //for using foo->set_something()->set_something();
> >                // oviously the ref_ptr delete "this", and cause a segfault
> >                // any idea how can avoid this?
> >        }
> > }
> 
> Would be good to show what is this ref_ptr class...
> 
> If the below code segfaults then maybe copy constructor of ref_ptr
> does not increment reference count.
> 
> ref_ptr<foo> f = foo::create();
> f->set_something()->set_something();

the problem is not when i do this:

ref_ptr<foo> f = foo::create();
f->set_something()->set_something();

the problem is when i do this:

class foo_b : public foo
{
        static ref_ptr<foo_b> create()
        {
                return ref_ptr<foo_b>(new foo_b());
        }
        foo_b();
        ~foo_b();
}

when i do:

foo_b foob = foo_b::create();
foob->set_something(); //here ref_ptr delete the object member class
foo... this is what i can't do right.

_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to