[c++] 가상 함수의 동작 원리
가상 함수는 부모 클래스에 선언되고 파생 클래스에서 override될 수 있습니다.
다형성이란 동일한 메서드 호출이 객체의 타입에 따라 다른 실제 구현을 실행할 수 있는 능력을 의미합니다.
가상 함수를 선언하려면 메서드 앞에 virtual
키워드를 붙입니다. 이것은 파생 클래스에서 해당 함수가 재정의될 것임을 나타냅니다.
컴파일러는 가상 함수를 호출할 때 객체의 실제 타입을 고려하여 해당하는 함수를 호출합니다.
이 과정은 가상 함수 테이블(vtable)을 통해 이루어집니다. 각 클래스마다 가상 함수 테이블을 가지고 있고, 객체의 실제 타입을 기반으로 올바른 함수를 호출하기 위해 이 테이블이 사용됩니다.
즉, 가상 함수를 통해 동일한 메서드 호출이 실제 객체의 타입에 따라 다른 동작을 할 수 있도록 합니다.