bvlのココロもよう・・・

« are you sure?(y/n) repeat | メイン | morphing thru time(title from enigma 3 Le Roi Est Mort, Vive Le Roi!) »

2006年02月28日

copy constractor



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


*1:どちらかと言えばC++編の方が近いような気がする

*2:ついでにコピーコンストラクタはプログラマが定義しなくても値渡しのみを行うモノを自動で定義してくれる。値渡ししかしないところがミソ

投稿者 bvl : 2006年02月28日 00:31

トラックバック

このエントリーのトラックバックURL:
http://www.p-ray.net/MT/mt-tb.cgi/979

コメント

コメントしてください




保存しますか?