2006-02-27 copy constractor programing 今月号のCマガジンの特集「危険なコーディング癖を排除せよ オブジェクト指向編*1」のコピーコンストラクタところで「コピーコンストラクタがあるのは実行効率の」とか書いてありましたが。 コピーコンストラクタ*2がなければ「引数の値渡し」の時に=演算子のオーバーロード使うことになるのですが。 =が出てこないところで=演算子のオーバーロードが呼び出される方がわかりにくいと思うのはワタシだけ? あと、コピーコンストラクタでの値の代入先は未初期化の状態であるというのがはじめからわかっているので メモリ確保済みチェックと破棄をする必要がないことも=演算子のオーバーロードとの違いだと思う。 *1:どちらかと言えばC++編の方が近いような気がする *2:ついでにコピーコンストラクタはプログラマが定義しなくても値渡しのみを行うモノを自動で定義してくれる。値渡ししかしないところがミソ