c++のテンポラリオブジェクトについて質問です。

適当なclass Dateとそれらのコンストラクタ、デストラクタを定義したします。
もし
Date test(Date dt){処理}という関数を実行した場合、
引数、戻り値にはテンポラリオブジェクトが作成されると思います。
それらのテンポラリオブジェクトのコンストラクタ、デストラクタは、呼び出されますか?
適当なプログラムで試した所デストラクタしか呼び出されませんでした。

回答の条件
  • 1人20回まで
  • 登録:2018/02/05 03:47:09
  • 終了:2018/02/19 03:50:06

回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4678ベストアンサー獲得回数19932018/02/05 06:28:59スマートフォンから投稿

引数や戻り値の一次オブジェクトを作成する際に呼び出されるのは、コピーコンストラクタです。
引数なしのデフォルトコンストラクタではありません。

class Date {
public:
  Date() {    // こっちじゃなくて
    ...
  }
  Date(const Date& o) {    // こっちが呼ばれる
    ...
  }

};

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません