가상 함수1 C++ 가상 함수의 동작 원리 C++는 가상 함수들이 어떻게 동작해야 하는지 규정하고 있고 그 구현은 컴파일러 개발자의 몫입니다. 구현된 방법을 알면 가상 함수의 개념을 좀 더 잘 이해할 수 있습니다. 컴파일러는 가상 함수를 어떻게 처리하는가? 먼저 각각의 객체에 숨겨진 멤버를 하나씩 추가합니다. 숨겨진 멤버는 함수의 주소들로 이루어진 배열을 지시하는 포인터를 저장합니다. 일반적으로 그 배열을 가상 함수 테이블(VirTual Function Table, 줄여서 vtbl)이라고 합니다. vtbl에는 클래스의 객체들을 위해 선언된 가상 함수들의 주소가 저장되어 있습니다. 기초 클래스의 한 객체는 그 클래스를 위한 모든 가상 함수들의 주소로 이루어진 테이블을 지시하는 포인터를 가집니다. 파생 클래스도 가상 함수들의 주소로 이루어진 별개의 .. 프로그래밍/C++ 2019.10.22 Plorence