살아가는 이야기

C++의 void 값 본문

컴퓨터, 풀어그림

C++의 void 값

우균 2011. 1. 11. 17:02
C++에서 void 값을 사용할 일은 없다. void 포인터를 디레퍼런스(dereferencing)해도 C++ 규정에 어긋난다. 그럼에도 불구하고 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