- 88 名前:デフォルトの名無しさん [2012/12/16(日) 02:35:18.51 ]
- 質問させてください。
www.geocities.jp/ky_webid/cpp/language/007.html 上記のURL中に 「デストラクタですが、これはクラスのインスタンスが解体されるときに、 解体の直前で自動的に呼び出されます。 解体されるタイミングは、そのインスタンスのスコープを抜けるときです。 」 とあるのですが、 では IProduct* createFactory(Content* content) { switch( content->id ) { case PARTS_ID_A: return new ProductA( content ); default: return NULL; } } ProductA* product = createFactory(content); のようなコードはなぜ正常に動くのでしょうか?? createFactory内でnewしたProductAはすぐreturnされてスコープを抜けてしまうので その時点でデストラクトされ、 productに代入されるポインタはすでに使えないものになっているのではないのでしょうか? 理屈がよくわからないのですが、教えて頂けると嬉しいです。
|

|