if(this) ????

Seven..의 이미지

오늘따라 이상한 생각이 많이 드네요..
다음과 같은 클래스를 생각해봤습니다.

class cFunc
{
	int m_nINT;
public:
	static inline int staticFunc() { return 1; }
	inline int NotUseMember() { return 2; }
	inline int UseMember() 
	{ 
		if(this)
			return m_nINT;
		else
			return 3;
	}
};

이런 경우

int a, b, c;
cFunc *pFunc = NULL;
a = cFunc::staticFunc();
b = pFunc->NotUseMember();
c = pFunc->UseMember();

어떤 곳에서도 실제적인 문제 는 일어나지 않고 동작하는데요..

과연.. 안전한지에 대한 질문입니다.

wowcode의 이미지

this 가 NULL이기 때문에 맴버 변수를 전혀 참조하지 않습니다. 맴버 변수를 참조하거나 함수중 virtual 로 선언된 것이 있다면 바로 죽습니다.