- 581 名前:デフォルトの名無しさん [2007/01/11(木) 07:38:26 ]
- shared_ptr<A> hoge(new A);
int i = 1; while(i--){ shared_ptr<A> hogehoge(new A); hoge = hogehoge; cout << hoge.use_count() << endl; } cout << hoge.use_count() << endl; こういう状態のとき、二番目のhoge.use_count()のときにはカウントが 一番目より一つ減るでしょ。それをhogeのカウンタはどうやって把握したの? ってことを聞きたかったんです。 カウンタのデクリメントについては、ソースを読めば代入演算子の 部分で、代入元をインクリメントして代入先をデクリメントするってことが 書いてあるけど、代入したオブジェクトそのものが上のコードみたいに スコープはずれて消えたときにデクリメントする処理なんて書いてないな、 と思ったんです。 >>580 代入元のデストラクタですか? どうやって代入元のデストラクタで、shared_ptrのカウントを下げてるか分かりますか??
|

|