次のタイミングで呼び出される 1. 代入初期化 > Hoge obj2 = obj1; つぎはただの代入 > obj3 = obj1; 2. 仮引数 > func( obj ) func 終了時にデストラクタが呼ばれるので二重削除の原因になる。
class Hoge {
...
Hoge( const Hoge &obj );
};
Hoge::Hoge( const Hoge &obj ){
val = obj.val;
p = new Hage( *(obj.p) );
...
}
仮引数が const object なので,const method しか呼び出せないことに注意! constメンバ