호빵의 IT 개발소

가상 함수 테이블이란? 본문

CS(전공지식)/기술면접 준비

가상 함수 테이블이란?

호빵Stack 2025. 4. 15. 18:08

가상 함수 테이블 (vtable)

  • vtable은 C++에서 가상 함수를 런타임에 호출하기 위해 사용하는 함수 포인터 테이블.
  • 가상 함수가 선언된 클래스는 컴파일 시 vtable을 생성하고, 객체는 자신이 속한 클래스의 vtable 주소를 가리키는 **vptr(가상 함수 포인터)**를 가짐.
  • 이를 통해 부모 클래스 포인터로도 실제 자식 클래스의 오버라이드된 함수가 호출됨 (런타임 다형성).

 

 

면접 스타일 답변 예시:

가상 함수 테이블 줄여서 vtable은 C++에서 가상 함수를 런타임에 호출하기 위해 사용하는 구조입니다.
가상 함수를 가진 클래스는 컴파일 시 해당 함수들의 포인터를 담은 테이블을 만들고
각 객체는 자신이 속한 클래스의 vtable 주소를 vptr이라는 포인터로 참조합니다.
그리고 부모 클래스 포인터로 자식 객체를 가리킬 때
함수를 호출하면 vptr을 따라 해당 클래스의 vtable을 찾아가서 정확한 함수 주소를 실행하게 됩니다.
이 구조 덕분에 C++은 런타임에서도 정확한 오버라이드 함수를 동적으로 호출할 수 있습니다.

'CS(전공지식) > 기술면접 준비' 카테고리의 다른 글

유니티 라이프 사이클이란?  (0) 2025.04.15
C# 가비지컬렉터란?  (0) 2025.04.15
가상 함수(Virtual)란?  (1) 2025.04.14
이터레이터(=반복자, iterator)란?  (0) 2025.04.14
전방 선언이란?  (0) 2025.04.14
Comments