C++ 에서 new 와 delete는 <static 연산자 함수> 이다.

 

new는 

1. 메모리 공간을 할당 하고

2. 생성자를 호출 하고

3. 형변환을 해서 반환한다.

 

+malloc은 메모리 공간 할당만 한다.

 

new 연산자 오버로딩은 프로그래머가 메모리 할당 부분만 손 볼 수 있다. 나머지 2,3번은 컴파일러가 한다.

형태 : void* operator new ( size_t size)

 

 

delete

1. 소멸자를 호출하고 [컴파일러가 함]

2. 공간을 소멸한다.

 

delete 연산자 오버로딩은 공간 소멸만 한다.

형태 : void operator delete (void* adr) { delete []adr;}

 

 

*static을 안붙여도 static으로 동작한다.

+ Recent posts