【初心者歓迎】C/C++室 Ver.92【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0597デフォルトの名無しさん
2014/09/17(水) 02:55:00.71ID:epONY4U2class A {
public:
A() : c(nullptr) {}
A(const A& a) : c(a.c ? new C(*a.c) : nullptr) {}
virtual ~A() { if(c) delete c; }
protected:
C* c;
}
ただポインタ値をコピーするだけの実装だとコピー発生すると同じポインタを持つオブジェクトが複数出来上がって同じポインタをコピー解放しようとすんの
それかコピーコンストラクタでコピー元の無効にしてやること
A(A& a) : c(a.c ) { a.c =nullptr;}
A(A&& a) : c(a.c ) { a.c =nullptr;}
A(const A& a) は削除
■ このスレッドは過去ログ倉庫に格納されています