프로그램 내부적으로 가상함수는 VTABlE과 vptr(Virtual pointer)를 통해 처리됩니다. 기반 클래스에 virtual 함수가 선언되면 해당 클래스의 모든 객체는 자신의 메모리에 vptr이라는 숨겨진 포인터를 갖게 되면 이 vptr은 해당 클래스의 VTABLE을 가리킵니다. VTABLE에는 실제 가상함수들의 메모리 주소가 저장되어 있어, 포인터가 어떤 객체를 가리키든 런타임에 실제 호출될 함수 (파생클래스에서 재정의된 함수)를 찾아 동적으로 호출(동적 바인딩)합니다.