함수 호출은 다른 말로 하면 특정 함수 코드를 실행하라는 뜻이고, 이는 또 다른 말로 "함수 이름을 결합(binding)한다"고 한다. 이 작업은 오버로딩 때문에 좀 어려워지는데, 함수 이름 뿐만 아니라 매개 변수도 조사해야 하기 때문이다. 어쨌든 이런 결합들을 컴파일 하는 도중에 수행할 수 있다. 이는 정적 결합(static binding) 혹은 초기 결합(early binding)이라 한다. 하지만 직접 코드를 실행 해봐야지 알 수 있는(전 포스팅에서 나왔던 기초 클래스-파생 클래스의 배열과 가상 함수) 바인딩들도 있다. 이런 결합들은 동적 결합(dynamic binding) 혹은 말기 결합(lately binding)이라 한다. 이 과정을 깊게 보자. (예전에 동적 할당을 사용하는 이유가 기억나는가? 크기가 100인 배열을 200개 미리 생성하는 것보다, 실행 도중에 크기에 맞는만큼만 알맞게 메모리를 배정하기 위해서 '동적' 할당을 사용한다고 했다.)
가상 테이블