[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;
}
이 예제에서 baseptr
은 Base
클래스의 포인터지만, 런타임에 Derived
클래스의 show
함수가 호출되는 것을 볼 수 있습니다. 이것이 동적 바인딩의 예입니다.
이러한 동적 바인딩을 통해 C++은 런타임 다형성을 지원하며, 객체 지향 프로그래밍의 주요한 특징 중 하나입니다.