얕복 깊복
멤버 데이터를 비트열 단위로 똑같이 복사한다.
주소값을 그대로 복사하여 같은 주소값을 가리키게된다고 보면된다!

변수2 = 변수1; 얕은복사를 하면
변수2는 변수1이 가리키고있던 주소값을
그대로 복사하여 같은곳을 참조하게된다.
값을 복사할때 힙 메모리에 새로운 메모리공간을 할당해주고 값을 복사한다.

간단한 C++ 예시코드
class Student
{
public:
Student(const char* name, int age) // 인자가 2개인 생성자
{
_name = new char[strlen(name)] + 1]; // 힙메모리에 할당해준다
strcpy(_name,name);
// name의 값 을 복사하여 _name이 가리키고있는 힙메모리에 값을 넣어줌
_age = age;
}
Student(const Student* s) // 얕은 복사 ( 복사생성자 )
{
_name = s->_name;
_age = s->_age;
// 주소값을 복사한다. ( 얕은복사 )
}
Student(const Student& s) // 깊은 복사 ( 복사 생성자 )
{
_name = new char[strlen(s._name) + 1] // 힙메모리에 메모리공간을 할당해준다.
//새로운 메모리공간에 값을 넣는다 ( 깊은 복사 )
strcpy(_name,s._name);
_age = s._age;
}
public:
char* _name;
int _age;
}