[c++] 가상 함수 테이블(virtual function table)

가상 함수 테이블은 해당 클래스의 모든 가상 함수에 대한 포인터를 포함하는 테이블입니다. 각 객체가 생성될 때마다 이 테이블이 만들어지며, 이에 대한 포인터가 객체에 추가됩니다.

다음은 간단한 예시를 통해 가상 함수 테이블의 동작 원리를 살펴보겠습니다.

#include <iostream>

class Base {
public:
    virtual void display() {
        std::cout << "Base display called" << std::endl;
    }
};

class Derived : public Base {
public:
    void display() override {
        std::cout << "Derived display called" << std::endl;
    }
};

int main() {
    Base *basePtr;
    Derived derivedObj;
    basePtr = &derivedObj;

    // 가상 함수 테이블을 통해 Derived 클래스의 display 함수를 호출합니다.
    basePtr->display();

    return 0;
}

위의 코드는 가상 함수 테이블을 사용하여 파생 클래스의 함수를 호출하는 간단한 예시입니다.

더 자세한 내용은 아래 참고 자료를 참조하시기 바랍니다.

참고 자료: