- 832 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 00:25:36 ]
- なんかクラスWidgetがあって、
Widget(); という文があったら、Widgetのオブジェクトを(デフォルトコンストラクタで)作成して、 次の行に逝く前にすぐ消される(デストラクタが呼ばれる)と思います。 んじゃ、こういう場合はどうだろうと思い、↓を書いてみました。 Widget *w = &Widget(); 「Widget() はこの行でデストラクタが呼ばれ消えてしまうので、ポインタwは無効になるだろう」と考え、 考え通り、すぐデストラクタが呼ばれました。 んじゃ、参照はどうだろうと・・・ Widget &w = Widget(); 自分の考えとは違ってすぐにデストラクタが呼ばれず、この関数(またはブロック)を抜けるところでデストラクタが呼ばれました。 参照だと何か特殊なんですかね・・・
|

|