[c++] 동적 바인딩

가상 함수는 virtual 키워드를 사용하여 선언되며, 파생 클래스에서 재정의될 수 있습니다. 이를 통해 동적 바인딩이 가능해집니다.

동적 바인딩이 필요한 이유는 런타임에 객체의 타입을 알 수 없는 경우가 있기 때문입니다.

다음은 virtual 키워드를 사용하여 동적 바인딩을 사용하는 간단한 C++ 예제입니다.

#include <iostream>

class Base {
public:
    virtual void show() {
        std::cout << "Base class\n";
    }
};

class Derived : public Base {
public:
    void show() {
        std::cout << "Derived class\n";
    }
};

int main() {
    Base* baseptr;
    Derived derived;
    
    baseptr = &derived; // derived 클래스의 객체를 baseptr에 할당
    baseptr->show(); // 동적으로 Derived 클래스의 show 함수가 호출됨
    return 0;
}

이 예제에서 baseptrBase 클래스의 포인터지만, 런타임에 Derived 클래스의 show 함수가 호출되는 것을 볼 수 있습니다. 이것이 동적 바인딩의 예입니다.

이러한 동적 바인딩을 통해 C++은 런타임 다형성을 지원하며, 객체 지향 프로그래밍의 주요한 특징 중 하나입니다.