오버라이딩: 상위클래스를 가지고 있느 메서드를 하위 클래스가 재정의해서 사용
연산자오버로딩을 하는 이유: 연산자마다 다르지만 공통적으로 자신이 정의할 클래스르 기본 타입처럼 다루기 위해서이다. 또 다른 이유는 프로그램을 좀더 세밀하게 제어하기 위해서이다. 직접 정의한 클래스의 객체를 새로 만들어 분배하고 수거하는 과정을 원하는 방식으로 정의할 때 메모리 할당과 해제 연산자를 오버로딩 할 수 있다.
연순자 오버로디의 수혜자는 클래스 사용자.
복사생성자: 자신과 같은 클래스 타입의 다른 객체에 대한 참조를 인수로 전달받아, 그 참조를 가지고 자신을 초기화 하는 방법
변환생성자: 기본 타입을 이용해서 객체를 생성하는 생성자.
깊은 복사: '실제 값'을 새로운 메모리 공간에 복사하는 것을 의미
얕은 복사: '주소 값'을 복사한다는 의미
initializer_list: 여러 인수를 받는 함수를 쉽게 작성해주게 하는 도구 원소 타입에 대한 리스트를 <>로 묶어서 저장
정리 1 산술 연산자 오버로딩~비교연산자 오버로딩
정리 2 증감연산자 오버로딩~이니셜라이즈 리스트