假设我有这样的功能f
:
class MyClass {
};
boost::shared_ptr<MyClass> f(/*other input parameters*/) {
static boost::shared_ptr<MyClass> p;
if (!p.get() || /*Test if somebody else has a copy of my pointer*/) {
p.reset(new MyClass() );
}
/*Do other stuff*/
return p;
}
我可以检查调用者是否保留了我的指针的副本吗?如果我释放了我的指针,他也释放了他的指针,内存会被释放吗?