nullptr
왜 생겼는지만 간단히 알아본다.
void Test(int a)
{
cout << "Test(int)" << endl;
}
void Test(void* ptr)
{
cout << "Test(*)" << endl;
}
nullptr 이전에는 null값을 나타내기 위해 0 또는 NULL을 사용했다.
int* ptr = 0;
int* ptr2 = NULL;
이때 NULL은 define으로 정의됐다.
#define NULL 0
즉, 0과 NULL은 같은 의미인 것을 알 수 있다.
nullptr이 만들어진 이유
1. 오동작 방지
Test(0); // Test(int)
Test(NULL); // Test(int)
Test(nullptr); // Test(*)
0과 NULL은 우리가 생각했던 Test(void* ptr)을 실행할 수 없다.
2. 가독성
이전에는 코드를 읽을 때 0을 보면 NULL 또는 정수 0, 둘 중에서 하나를 의미했다.
하지만 nullptr이 생기면서 이런 고민을 할 필요가 없어졌다.
출처
https://www.inflearn.com/course/%EC%96%B8%EB%A6%AC%EC%96%BC-3d-mmorpg-1/dashboard
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의
시리즈를 원활하게 학습하기 위한 기초적인 C++ 문법들에 대해 학습합니다. 어셈블리 언어부터 시작해서 기본 C++ 문법, STL, C++11까지 핵심적인 내용을 압축해서 다루게 됩니다., - 강의 소개 | 인
www.inflearn.com
'프로그래머 > CPP_강의정리' 카테고리의 다른 글
cpp Modern C++ enum class (0) | 2021.11.24 |
---|---|
cpp Modern C++ using (0) | 2021.11.24 |
cpp Modern C++ 중괄호 초기화 (0) | 2021.11.23 |
cpp Modern C++ auto (0) | 2021.11.23 |
cpp algorithm 라이브러리 (0) | 2021.11.23 |