가상 함수를 사용하면 부모 클래스 포인터나 레퍼런스로 자식 객체를 다루면서실제 객체 타입에 맞는 함수를 호출할 수 있어 매우 유용하다.하지만 이런 가상 함수 호출이 내부적으로 어떻게 구현되는지는 잘 알지 못했다. 그래서 이번 글에서는 C++에서 가상 함수 호출을 구현할 때 자주 함께 언급되는 vtable과 vptr이 무엇인지,그리고 가상 함수 호출이 어떤 식으로 이루어지는지 공부한 내용을 간단히 정리해보려고 한다.vtable이란?vtable은 가상 함수 호출을 구현하기 위해 컴파일러가 내부적으로 사용하는 함수 주소 테이블이다.쉽게 말하면 가상 함수들의 주소를 정리해 둔 테이블이라고 볼 수 있다.보통은 1차원 배열과 비슷한 형태로 구현된다고 알려져 있다. vptr이란?vptr은 객체가 참조해야 하는 v..