C++과 C#의 얕은 복사와 깊은 복사는 조금 차이가 있다.
C#의 경우에는 참조만 복사하는게 얕은 복사로 되어있다.
C++
얕은 복사 : 멤버의 값들만 복사
깊은 복사 : 얕은 복사 + 객체가 가리키고 있는 포인터가 참조하는 대상까지 함께 복사
C#
얕은 복사 : 객체에 대한 참조만을 생성해 결국 같은 힙 메모리를 참조
깊은 복사 : 새롱운 객체를 만들어서 힙 메모리에 새롭게 할당