Sign in to follow this  
Followers 0
Quat

unique_ptr etc

4 posts in this topic

I'm trying to start integrating the new C++11 pointer types.

My understanding is:

1. Use unique_ptr for the pointer that is responsible for managing the object's life.
2. Use shared_ptr for a reference count like system.

If you just want a reference to an object, do you just use a "regular pointer" ?
0

Share this post


Link to post
Share on other sites
Preferably you would use a reference, but a normal pointer would work also, if you just want to refer to an existing object and not claim or affect its ownership status in any way.
0

Share this post


Link to post
Share on other sites
If that object is owned by a shared_ptr you can use a weak_ptr.
0

Share this post


Link to post
Share on other sites
In my code,

1, I use unique_ptr when possible if no need to share ownership. Then I pass raw pointer everywhere. When a function sees a raw pointer, it knows it should not free the pointer.
2, I use shared pointer when I have to share the ownership, but I would avoid it if possible. For shared pointer, I usually pass raw pointer to other functions too, unless the calling function will retain the ownership. Also, if an object doesn't need strong ownership, I use weak pointer when possible. I prefer weak pointer over shared pointer to avoid cycle reference.
3, I rarely use "delete" explicitly thanking to above two rules.
0

Share this post


Link to post
Share on other sites
There's some good reading on smart pointers and example code here:

[url="http://msdn.microsoft.com/en-us/library/vstudio/hh279674.aspx"]Smart pointers[/url]

That page has links to unique_ptr, shared_ptr and weak_ptr specific pages as well, all with examples. Edited by sednihp
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0