Cpp クラス コピーコンストラクタ 新しいページはコチラ
提供: yonewiki
(→クラス コピーコンストラクタ) |
|||
5行: | 5行: | ||
<tr> | <tr> | ||
<td style="width:1px;"></td> | <td style="width:1px;"></td> | ||
− | <td class="mbox-text plainlist" style="">本来の表記は「<b><span id="RealTitle" style="font-size:large;">C++ クラス コピーコンストラクタ</span></b>」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。</td> | + | <td class="mbox-text plainlist" style="">本来の表記は「<b><span id="RealTitle" style="font-size:large;">C++(Cpp) クラス コピーコンストラクタ</span></b>」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。</td> |
</tr> | </tr> | ||
</table> | </table> | ||
86行: | 86行: | ||
− | + | コピーコンストラクターがあれば、値渡しになっていたLook関数があっても、同じ実体を指し示すアドレスのコピーが作られ、デストラクタが呼び出されても、main関数で生成したオブジェクトのアドレスそのものではないし、Look関数に渡された引数にぶら下がっている参照変数からのメンバ変数も参照というカタチをとることになるため、Look関数が終わっても、参照型引数としてコピーして作られた方の引数クラスと同じ形式の参照型変数のアドレスやLook関数内で使ったその他のオブジェクトが消滅するだけなので、元々のmainクラスから作られたクラスの先頭アドレスにぶら下がっている実体が残っているため、main関数が終わるときに、きちんとmain関数で生成したクラスが消滅するため、問題が発生しません。そして関数の引数としても問題がなく、より役立つクラスになります。コピーコンストラクタは大事だよ。クラスの中で動的にメモリを確保するような変数があれば、コピーコンストラクタはあった方がいいです。 | |