・そのインスタンスを指す少なくとも一つのboost::shared_ptrが存在する
ことが必要です。
class CMyClass : public boost::enable_shared_from_this<CMyClass>
{
public:
CMyClass(){}
~CMyClass(){}
void Method(){
boost::shared_ptr<CMyClass> selfPtr = shared_from_this();
}
};
int main(int argc, char* argv[])
{
boost::shared_ptr<CMyClass> myClassA = boost::shared_ptr<CMyClass>(new CMyClass());
myClassA->Method(); //OK
CMyClass *myClassB = new CMyClass();
myClassB->Method(); //NG
delete myClassB;
CMyClass myClassC;
myClassC.Method(); //NG
return 0;
}
0 件のコメント:
コメントを投稿