- 799 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 19:47:17 ]
- オブジェクトの渡し方で混乱している奴も多いだろうから、簡単な例を挙げとく。
コピーコンストラクタが正しく定義されていると仮定してくれ。 // C++の値渡し。交換できない。 void swap(Hoge x, Hoge y) { Hoge temp = x; x = y; y = temp; } // C++のアドレス渡し。交換できる。 void swap(Hoge* x, Hoge* y) { Hoge temp = *x; *x = *y; *y = temp; } // Cの参照渡し。交換できる。 void swap(Hoge& x, Hoge& y) { Hoge temp = x; x = y; y = temp; } // Javaの『参照の値渡し』。交換できない。 public static void swap(Hoge x, Hoge y) { Hoge temp = x; x = y; y = temp; }
|

|