부재 : new와 operator new 의 차이점에 대해서 숙지해라.

이유
1. operator new 와 new 는 엄연히 차이를 보이기 때문이다.

해결방법
.. 각 차이점을 이해 한다.

new 연산자는
1. 오버로딩이 안된다.
2. 내부적으로 operator new를 호출한다.
3. 생성자를 호출한다.
4. 객체형 포인터를 반환한다.

operator new 는
1. 메모리 할당을 받는다.
2. void *형을 반환한다.

delete 역시 마찬가지다.  operator new 와 operator delete 는 C++ 판 malloc 과 free 함수 이다.

배열을 new 할때의 차이점
1. new는 똑같지만 내부적으로 operator new[] 를 호출 한다.
2. 그리고 각각 new에 의해서 생성자 호출

참조사항
메모리 지정 new 도 있다.
쓰임 : 원하는 지역에 객체행세를 하는 데이터를 넣을수 있다.(물론 이때 생성자는 호출된다!)


개인적인 생각
1. 어디에 쓰일까 곰곰히 생각해 보면,
첫째, 생성자 호출 없이 메모리를 할당 하려 할때
둘째, 내가 원하는 곳에 메모리를 할당 하려 할때
둘째의 경우 공유 메모리나 메모리-맵 I/O를 사용하는 애플리케이션을 만들때 유용하다고 함(구글에서 검색하면 자세히 나온다..)

2. 필자는 new는 건들수 없고 operator new 만 건든들수 있다는것만 알아도 큰 수확이라고 한다.
그리고 어떻게 operator new를 건든지는지 알면 좋을것이라고 하고 끝마쳤다;

3. More Effective C++ .. 다시 봐도 Effecitve C++ 보다 .. 더 어렵구나. 한 챕터 한 챕터가 한계다. 이번 챕터는 이런 차이점이 있다는 것만 파악할수 있다.(어떻게 쓰는지는 모르겠구나;)


코드

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기

댓글을 달아 주세요

">