C++相談室 part34
■ このスレッドは過去ログ倉庫に格納されています
0048デフォルトの名無しさん
NGNGvoid assign(const A& a) {p=a;++p->c;}
void release() {if(--p->c){delete p;p=9;}}
struct counter {int c;} *p; };
39の例だと、こうした場合には
(スレッド) 処理 // コメント
(0) A::~A()
(0) A::lock()
(1) A::A(const A&)
(1) A::lock()
(0) A::release() //p->c=0, p=0
(0) A::unlock()
(1) A::assign() // error
ということになる。
・・・と思ったけど、Aのインスタンスをカウンタで管理すると言う事かな?
■ このスレッドは過去ログ倉庫に格納されています