コピー コンストラクターを使用してクラスのインスタンスのディープ コピーを作成しようとしていますが、その書き方がわかりません。この瞬間、コピー コンストラクターを呼び出しても、プログラムはクラッシュしません。インスタンスで何かをしたい (つまり、配列を印刷したり、項目を追加したりするなど)、プログラムがクラッシュします...
誰かが私にそれを正しく書く方法を教えてもらえますか? それはまだ私を夢中にさせています O_o
struct DbChange {
const char* date;
const char* street;
const char* city;
};
class DbPerson {
public:
DbPerson(void);
const char* id;
const char* name;
const char* surname;
DbChange * change;
int position;
int size;
};
DbPerson::DbPerson() {
position = 0;
size = 1000;
change = new DbChange[1000];
}
class Register {
public:
// default constructor
Register(void);
int size;
int position;
DbPerson** db;
//copy constructor
Register(const Register& other) : db() {
db= new DbPerson*[1000];
std::copy(other.db, other.db + (1000), db);
}
};
int main(int argc, char** argv) {
Register a;
/*
* put some items to a
*/
Register b ( a );
a . Print (); // now crashes
b . Print (); // when previous line is commented, then it crashes on this line...
return 0;
}