【初心者歓迎】C/C++室 Ver.84【環境依存OK】 (6レス)
前次1-
抽出解除 レス栞

2
(1): [] 2013/05/22(水) 21:15:23.65 ID:fqArRwOt(1/2)
質問です。
あるサンプルコードにこんな感じのコードがありました。

funcA( &ClassB(arg1, arg2) );

多分ClassBのインスタンスのアドレスを渡す…みたいな感じだとは思うのですが、質問したいのは

・上記の解釈で合ってるのでしょうか?
・合ってるとして、ClassBのインスタンスはいつどこに生成されるのでしょうか?(funcAの呼び出しと同時、funcAの呼び出しより前、呼び出されたfuncAの中で、ヒープ、スタック、静的など)
・また、破棄はどのタイミングで行われるのでしょうか?それとも破棄が保証されない可能性がありますか?
4: [sage] 2013/05/22(水) 23:26:07.07 ID:TBBrIDsw(1)
>>2
外部リンク:codepad.org
・new で確保しない以上、やはり例外なく(例外は例外だが)インスタンスはスタック上に一時オブジェクトとして確保されているようだ
・スタック上である以上、funcA の呼び出し前にコンストラクタは走り、funcA の後で破棄されているようだ
・funcA() の中にいるかぎりclassB() の一時オブジェクトは生きているようにみえる、問題ないのでは?

しかしgccは文句をいってくる‥‥やっぱりだめなのか?
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.039s*