2017년 8월 2일 수요일

[C++ 11] NULL과 nullptr의 차이

nullptr : null pointer를 표현하기 위해 C++ 11에서 추가 된 키워드

기존의 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의 사용을 하는게 좋을 것 같습니다.

댓글 없음:

댓글 쓰기