복사 생성자는 클래스의 객체를 생성할 때 이미 존재하는 동일 클래스의 다른 객체를 그대로 복사하기 위해 필요하다. 클래스는 일종의 데이터 집합이다. 이 데이터를 다루는 도구인 멤버함수는 동일 클래스의 객체라면 공유를 하는 개념이기 때문에 객체의 복사에 있어서는 데이터(멤버변수)의 복사만 생각하면 된다. 왜냐면 데이터의 경우는 객체마다 고유하기 때문이고, 이를 공유하면 문제가 발생하기 때문이다.(예를 들어 특정 객체의 파괴 시 데이터를 공유할 경우 문제 발생). 따라서 C++문법에서 복사 생성자를 다룰 때 항상 따라다니는 문제인 얕은 복사와 깊은 복사에 관한 이야기가 중요한 문법적 주제가 된다. 초심자에게는 포인터와 메모리에 대한 개념이 확실히 이해되고 난 후에 이해할 수 있는 난코스라고 생각하면 된다. ..