이창연님의 블로그에 재밌는 글이 올라왔다. 아래 코드에 대한 것인데..

class TestClass
{
public:
	int TestFunc( int arg ) { return ( arg * 2 ); }
};
int main( int argc, char* argv[] )
{
	TestClass* pt = NULL;
	int ret = pt->TestFunc( 4 );
	return ret;
}

인스턴스 없이 클래스 포인터로 static이 아닌 메소드를 호출할 때에 어떻게 되느냐는 것인데, 결과에 당황하면서도, vtable을 이용한 메소드 호출에 대해 상상하다보면, 쉽게 수긍이 가기도 한다.

아 물론, 이런 코드 자체는 올바르지 않다. 하지만, 대부분의 환경에선 아무 에러 없이 실행이 된다는 점을 곱씹어볼만 하다.


« Previous : 1 : ... 115 : 116 : 117 : 118 : 119 : 120 : 121 : 122 : 123 : ... 255 : Next »