기존의 NULL의 정의 : #define NULL 0
상수 0으로 정의하여 치환하는 방식으로 처리하였는데 null pointer와는 차이가 있습니다.
void ptrFunc(int *ptr) { cout << "ptr" << endl; } void ptrFunc(int ptr) { cout << "int" << endl; } void main() { ptrFunc(0); ptrFunc(NULL); ptrFunc(nullptr); }
이 소스의 실행 결과는
int
int
ptr
로 함수 오버로딩을 하였을때도 NULL은 pointer가 아닌 상수로 취급받는 것을 볼 수 있습니다.
nullptr을 사용함으로서 함수 오버로딩 등을 할 때 NULL의 모호함을 해결할 수 있게 되었습니다.
c++ 11 이후로는 nullptr의 사용을 하는게 좋을 것 같습니다.
댓글 없음:
댓글 쓰기