살아가는 이야기
C++의 void 값 본문
C++에서 void 값을 사용할 일은 없다. void 포인터를 디레퍼런스(dereferencing)해도 C++ 규정에 어긋난다. 그럼에도 불구하고 void 값을 써야 하는 경우가 간혹 있다. 예를 들어서 다음 코드를 보자.
여기에서 :와 ; 사이에 어떤 값을 넣어 줘야 하는데, 이 값의 타입은 delete p의 타입과 같아야 한다. delete p의 타입은 당황스럽게도 void다. 따라서 :와 ; 사이에는 void 값을 넣어 주어야 한다. 굳이 void 값을 넣으려면 바로 이 문제에 답이 있다.
이 수식의 값이 바로 void 값이 된다. 이렇게 작성한 샘플 프로그램을 적으면 다음과 같다.
p? delete p: ;
여기에서 :와 ; 사이에 어떤 값을 넣어 줘야 하는데, 이 값의 타입은 delete p의 타입과 같아야 한다. delete p의 타입은 당황스럽게도 void다. 따라서 :와 ; 사이에는 void 값을 넣어 주어야 한다. 굳이 void 값을 넣으려면 바로 이 문제에 답이 있다.
delete new int(0)
이 수식의 값이 바로 void 값이 된다. 이렇게 작성한 샘플 프로그램을 적으면 다음과 같다.
#define VOID (delete new int(0))
int main()
{
int *p = new int(0);
p? delete p: VOID;
return 0;
}
... for JJooni.
Comments