{

왜 같이 제공해 주어야 하는가?

컴파일러가 하는 일 중에 코드를 생성해 주는 일도 있다. 컴파일러의 코드의 생성은 여러 가지 일들이 있다. 그 중에서 new 가 실패 했을 경우, 자동으로 delete문을 만들어 주는 부분이 있는데, 만약 new와 같은 쌍의 delete가 없다면, delete를 호출하는 코드를 추가해 주지 않는다.

그렇기 때문에, 항상 같이 제공해 주어야 한다.

예외적으로 메모리를 생성하지 못하는 new의 경우 delete를 만들지 않아도 상관이 없다. 왜냐하면 메모리가 세어 나가는게 아니기 때문이다.


관련링크

http://www.debuglab.com/knowledge/newoperation.html

}

'책 정리 > C++ Coding Standards : C++ 코딩의 정석' 카테고리의 다른 글

항목 50 : 기반 클래스 디스트럭터는 공용과 가상 또는 보호와 비가상으로 만들어라. ( Make base class destructors public and virtual, or protected and nonvirtual. )  (0) 2009.04.03
항목 49 : 컨스트럭터와 디스트럭터에서는 가상 함수의 호출을 피하라. ( Avoid calling virtual functions in constructors and destructors. )  (0) 2009.04.03
항목 48 : 컨스트럭터 내에서 할당 대신 초기화를 사용 하라. ( Prefer initialization to assignment in constructors. )  (0) 2009.04.01
항목 47 : 멤버 변수의 정의와 선언은 같은 순서로 하라. ( Define and initialize member variables in the same order. )  (0) 2009.04.01
항목 46 : 특정한 클래스에 맞는 new를 제공한다면, 모든 표준 형식을 제공해야 한다. ( If you provide any class-specific new, provide all of the standard forms (plain, in-place, and nothrow). )  (0) 2009.04.01
항목 44 : 비멤버 함수를 활용하라. ( Prefer writing nonmember nonfriend functions. )  (0) 2009.03.31
항목 43 : Pimpl을 적당히 활용하라. ( Pimpl judiciously. )  (0) 2009.03.31
항목 42 : 내부의 것은 너무 노출시키지 말라. ( Don’t give away your internals. )  (0) 2009.03.31
항목 41 : 특징 없는 값의 집합을 제외하고는 모든 데이터 멤버를 사영으로 하라. Make data members private, except in behaviorless aggregates (C-style structs).  (0) 2009.03.31
항목 40 : 간접 변환을 피하라. ( Avoid providing implicit conversions. )  (1) 2009.03.30
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기