掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
テンポラリオブジェクトに直接介入するには (ID:51393)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
余分な部分もありますが、下記コードで下のように入れ替えを行った際の "copy constructor"等の出力数を数えてみて下さい。 ・operator +()の実装:(1)と(2)を入れ替える ・返り値の受けてのインスタンス生成方法:(3)と(4)を入れ替える class A { private: int num; public: A(int n = 0) : num(n) { cout << "not copy constructor" << endl; } A(const A& a) : num(a.num) { cout << "copy constructor" << endl; } A& operator =(const A& r) { num = r.num; cout << "operator =" << endl; return *this; } int get() const { return num; } }; A operator +(const A& op1, const A& op2) { return A(op1.get() + op2.get()); } // (1) A operator +(const A& op1, const A& op2) { A result(op1.get() + op2.get()); return result; } // (2) int main(int argc, char **argv) { A a1(5), a2(8); A a3(a1 + a2); // (3) A a3 = a1 + a2; // (4) cout << a3.get() << endl; a3 = a1; cout << a3.get() << endl; }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.