V-Table1 [ C++ ] 가상함수 테이블( V-Table ) 먼저 예제를 보고 가상 함수 테이블( V-Table )에 대해 알아보자. Func1은 가상 함수이고 Func2는 클래스 A의 멤버 함수, Func3는 클래스 B의 멤버 함수이다. 먼저 클래스 A를 보면 virtual로 선언된 가상 함수가 존재한다. 이렇게 한 개 이상의 가상 함수를 포함하는 클래스에 대해서는 컴파일러가 다음과 같은 형태의 '가상함수 테이블'을 만든다. 가상함수 테이블을 보면, key와 value가 있다. key에는 호출하고자 하는 함수를 구분 지어주는 식별자이고, value는 구분자에 해당하는 함수의 주소이다. 만약 A 객체를 생성하면 객체에 A 클래스의 가상 함수 테이블의 주소 값이 저장된다. 그럼 A 객체의 Func1 함수 호출 시 다음과 같은 참조 과정을 가진다. A 객체의 Func.. 2019. 10. 10. 이전 1 다음