Cpp クラス コピーコンストラクタ 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(クラス コピーコンストラクタ)
(クラス コピーコンストラクタ)
86行: 86行:
  
  
 コピーコンストラクターがあれば、値渡しになっていたLook関数があっても、同じ実体を指し示すアドレスのコピーが作られ、デストラクタが呼び出されても、main関数で生成したオブジェクトのアドレスそのものではないし、Look関数に渡された引数にぶら下がっている参照変数からのメンバ変数も参照というカタチをとることになるため、Look関数が終わっても、参照型引数としてコピーして作られた方の引数クラスと同じ形式の参照型変数のアドレスやLook関数内で使ったその他のオブジェクトが消滅するだけなので、元々のmainクラスから作られたクラスの先頭アドレスにぶら下がっている実体が残っているため、main関数が終わるときに、きちんとmain関数で生成したクラスが消滅するため、問題が発生しません。そして関数の引数としても問題がなく、より役立つクラスになります。コピーコンストラクタは大事だよ。
+
 コピーコンストラクターがあれば、値渡しになっていたLook関数があっても、同じ実体を指し示すアドレスのコピーが作られ、デストラクタが呼び出されても、main関数で生成したオブジェクトのアドレスそのものではないし、Look関数に渡された引数にぶら下がっている参照変数からのメンバ変数も参照というカタチをとることになるため、Look関数が終わっても、参照型引数としてコピーして作られた方の引数クラスと同じ形式の参照型変数のアドレスやLook関数内で使ったその他のオブジェクトが消滅するだけなので、元々のmainクラスから作られたクラスの先頭アドレスにぶら下がっている実体が残っているため、main関数が終わるときに、きちんとmain関数で生成したクラスが消滅するため、問題が発生しません。そして関数の引数としても問題がなく、より役立つクラスになります。コピーコンストラクタは大事だよ。クラスの中で動的にメモリを確保するような変数があれば、コピーコンストラクタはあった方がいいです。
  
  

2020年7月10日 (金) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス