From 2a7ae317e3281aa215e618c6e65a2078a6383abe Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Tue, 13 Nov 2012 11:50:33 +0400 Subject: [PATCH] shared_ptr memory leaks ex --- cpp/shared_ptr/main.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 cpp/shared_ptr/main.cpp diff --git a/cpp/shared_ptr/main.cpp b/cpp/shared_ptr/main.cpp new file mode 100644 index 0000000..b66da12 --- /dev/null +++ b/cpp/shared_ptr/main.cpp @@ -0,0 +1,28 @@ +#include + +class Foo { + public: + boost::shared_ptr s_ptr; + boost::weak_ptr w_ptr; + + Foo () + { + std::cout << "Foo (): allocate big piece by " << this << std::endl; + } + ~Foo () + { + std::cout << "~Foo (): deallocate the piece by " << this << std::endl; + } +}; + +int main (int argc, char *argv[]) +{ + boost::shared_ptr foo (new Foo); + + if (1 < argc ? argv[1][0] - '0' : 0) + foo->s_ptr = boost::shared_ptr (foo); + else + foo->w_ptr = boost::weak_ptr (foo); + + return 0; +}