nullptr




 Managed 객체 참조는 C++ 의 포인터와 한가지 면에서(객체를 가리키는 또는, 무언가를 가리킨다는 점에서) 유사하다. C++ 포인터의 값이  NULL 일때, 포인터는 메모리의 어떠한 위치도 가리키지 않는다. 유사하게 객체 참조(Managed Code 의)가 아무것도 가리키지 않을 때 객체 참조는 nullptr 값을 갖는다. nullptr 은 C++/CLI 의 키워드 이다. 이것은 int, float 와 같이 타입의 종류가 아니다. 이 값은 객체 참조가 어떠한 것도 가리키지 않는다는 것을 나타낸다. nullptr 은 타입이 아니기 때문에 sizeof(nullptr), throw nullptr 과 같이 사용할 수 없다.


1. 객체 참조에 할당



2. 유효한 객체 참조에 명시적으로 할당


유효한 객체 참조에 nullptr 을 할당 하므로서, 해당 객체 참조가 더이상 참조 되지 않음을 나타내고, Garbage Collector 의 수집 후보가 된다.


3. 객체 참조의 비교 연산으로 사용
   if (dirObjRef == nullptr) { throw some exception or as you wish...}
   if (dirObjRef != nullptr) {....}

   즉  ==, != 과 같은 비교 연산과 사용 가능하지만 +, -, >, <, etc 연산자들과는 사용할 수 없다.


4. 매소드의 인자 또는, 리턴값으로 사용





5. nullptr 은 Managed Code 및 Native Code 에서 호환 가능하다.




■ 참조

1. C++/CLI Primer - Enter the World of .NET Power Programming
Posted by six605
,