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으로 동작한다.
'c, c++ 리마인드' 카테고리의 다른 글
C++ friend 함수 (0) | 2023.10.31 |
---|---|
C++ 함수 객체(Functor) 와 함수 포인터 (0) | 2023.10.27 |
C++ this 포인터 / 멤버함수 / 가상함수 (0) | 2023.10.24 |
c++ pair, lower_bound/upper_bound 유의 사항 (0) | 2023.09.24 |
ANSI, UNICODE, UTF-x (0) | 2023.09.05 |