복사, 이동 생성자 등을 정의하는 이유유저가 직접 동적할당하는 new의 경우에 얕은 복사를 방지하기 위해서이다.vector, string, 스마트 포인터는 이와 무관하다. 클래스에서 컴파일러가 알아서 만들어주는 메소드 1. 생성자2. 소멸자3. 복사 / 이동 생성자4. 복사 / 이동 연산자 유저가 클래스 내의 멤버 변수로 포인터를 사용한다면소멸자, 복사 / 이동 연산자 및 할당자를 관리해야 한다. 초기화 할 때는 습관적으로 brace initialization - {} 을 사용하도록 하는 것이 좋다. 이는 C++11에서 추가된 우측값 레퍼런스와 연관이 있다.처음에 보면 다소 생소할 수 있는 개념이지만 천천히 학습하다보면 이해 가능하다. 복사 생략(Copy Elision)#include using n..