프로그래밍 언어 공부/C++

[Modern C++] nullptr

설탕중독 2022. 7. 15. 00:48

 

[Modern C++] nullptr

 

nullptr은 누구나 사용하고 있을 정도로 널리 퍼져있고 유명하다.

Modern C++에서 nullptr이 등장하기 전에는 0 혹은 null이 사용되었는데 오늘은 예전에 쓰이던 방식과

nullptr의 차이를 알아보도록 하자.

 

 

1-1. 예전 방식

우선 예전 방식의 경우 이미지 1-1과 같은 문제가 있다.

0 or NULL값을 넣어주어도 결국엔 정수를 넣어주는 것이나 다름없기 때문에 포인터 형식의 함수가

호출되는 것이 아닌 int형 함수가 호출되는 것을 확인할 수 있다. 이러한 문제 때문에 사용자가 포인터 형식의

함수를 호출하고 싶은데 전혀 다른 정수형 함수가 호출되어서 문제가 될 수도 있다.

 

 

1-2. nullptr 사용

이번에는 nullptr을 넣어주었다. 결과는 예상대로 포인터를 받아주는 형식의 함수가 호출되는 것을

확인할 수 있다. 1-1 이미지처럼 nullptr를 사용하지 않으면 의도치 않게 잘못된 함수를 호출하거나 오동작이

일어날 수 있으므로 nullptr 사용은 필수라고 생각하면 된다.

 

 

nullptr은 가독성적인 측면에서도 도움이 된다. nullptr을 사용했다는 것은 포인터를 사용하고 있다는 것을

간접적으로 알려주는 것이나 다름 없기 때문에 사용하는 것이 여러모로 이득이 많다.