아무것도 없다는 것을 표현하고 싶을 때 NULL과 nullptr 두 방식으로 표현할 수 있다.
두 방식의 큰 차이점은 NULL은 0과 같기 때문에 int이고 nullptr은 포인터이다.
그래서 포인터가 아무것도 가리키지 않다는 것을 표현할 때는 NULL이 아니라 nullptr이 적합하다.
Test(NULL); //Test(int) 생성자 실행
TEST(nullptr)//Test(void*) 생성자 실행
nullptr의 작동원리는 *연산자를 오버로딩해 0을 반환하는 것이다.
그래서 결론적으로 nullptr도 0을 반환하지만 *가 붙어있는 포인터를 대상으로만 작동한다.
'C++' 카테고리의 다른 글
| [C++] enum vs enum class (0) | 2022.06.25 |
|---|---|
| [C++] typedef보다 using을 사용하자. (0) | 2022.06.25 |
| [C++] auto (0) | 2022.06.25 |
| [C++] algorithm 헤더의 remove, remove_if 주의점 (0) | 2022.06.24 |
| [C++] 값 타입 변환 vs 참조 타입 변환 (0) | 2022.06.22 |