자원관리
이펙티브 C++(132p ~ 142p)
이펙티브 C++ https://www.yes24.com/Product/Goods/17525589 페이지 132p ~ 142p 요약 항목 16: new 및 delete를 사용할 때는 형태를 반드시 맞추자 new 연산자를 사용해서 어떤 객체를 동적 할당하면 내부적으로는 두 가지가 진행된다. 메모리가 할당된다. 할당된 메모리에 대해 한 개 이상의 생성자가 호출된다. delete 연산자를 사용할 때에는 내부적으로 다음과 같은 동작이 진행된다. 기존에 할당된 메모리에 대해 한 개 이상의 소멸자가 호출된다. 메모리가 해제된다. 이때, delete 연산자가 적용되는 객체의 수는 소멸자가 호출되는 횟수와 같다. 삭제되는 포인터는 객체 하나만 가리킬까, 아니면 객체의 배열을 가리킬까? new로 힙에 만들어진 단일 객체의..
이펙티브 C++(111p ~ 121p)
이펙티브 C++ https://www.yes24.com/Product/Goods/17525589 페이지 111p ~ 121p 요약 항목 12: 객체의 모든 부분을 빠짐없이 복사하자 객체의 안쪽 부분을 캡슐화한 객체 지향 시스템 중 설계가 잘 된 것들을 보면, 객체를 복사하는 함수가 딱 둘만 있는 것을 알 수 있다. 복사 생성자 복사 대입 연산자 이 둘을 통틀어 객체 복사 함수(copying function)라고 부른다. 객체 복사 함수는 컴파일러가 필요에 따라 자동으로 만들기도 한다. 객체 복사 함수의 기본적인 요구 사항은 복사되는 객체가 갖고 있는 데이터를 빠짐없이 복사한다. 이다. 객체 복사 함수를 직집 선언한다는 것은 컴파일러가 만든 객체 복사 함수의 기본 동작에 뭔가 마음에 안 드는 것이 있다는 ..