C++相談室 part77
■ このスレッドは過去ログ倉庫に格納されています
0467デフォルトの名無しさん
2010/02/06(土) 15:38:02num1がコピーされたインスタンス。
num2の生成にコピーは発生しない。
num2とp->numは同じインスタンス。同じ型。
num3の生成にコピーは発生しない。
num3とcp->numは同じインスタンス。
前者はconst修飾されていて変更不可、
cpはpointeeがconst修飾されているのでcpから得られるメンバは総じて変更不可。
num4はnum1と同じくコピー。
通常、コピーコンストラクタはconst referenceの仮引数であるので挙動に変化なし。
num5はnum3の理由によりコンパイルエラー。
参照は定義時に使われたインスタンスを指すオブジェクト。
num6はcp->numと同じインスタンス。但し変更されない事を宣言時に明示している。
よって型検査の上では正常。
いずれにせよ、参照は単にポインタの糖衣構文に過ぎずプログラマーが参照は図示を明記しなくても良いというだけ。
cons参照が特殊なのは壊れてないスタックにあるインスタンスをコピーコストなしで見られる点。
■ このスレッドは過去ログ倉庫に格納されています