Study

static binding, dynamic binding

슈라。 2010. 1. 25. 21:11

- binding : 프로그램 요소에 지정 가능한 속성 값을 지정하는 것.

- static binding : 정적 바인딩. 주로 컴파일 타임에 이루어지는 바인딩을 말함. = early binding
                        속도가 빠른 것이 장점.

- dynamic binding : 동적 바인딩. 런타임시에 이루어지는 바인딩을 말함. = late binding
                             속도는 느리나 메모리가 필요할 때 동적으로 할당되므로 효율적이고 유연함.

  C++ 에서 dynamic binding은 중요한 요소인 Polymorphism을 위해 꼭 필요하다.
  Polymorphism(다형성)은 동일한 명령(메시지)으로 객체마다 저마다의 방식으로 처리하도록 하는 것을 말하며 base class의 함수를 derived class에서 동일하게(이름 뿐만 아니라 반환과 인자까지) 사용(Overriding)함으로써 구현하며 virtual로 선언함으로써 dynamic binding을 하도록 한다.