개발 언어/cpp

CPP 정적 바인딩(Static Binding)과 동적 바인딩(Dynamic Binding)

eeeun:) 2022. 1. 18. 13:54
반응형

바인딩(Binding)이란?

프로그램에 사용된 각종 내부 요소, 이름 식별자들에 대해 값 또는 속성이 결정되는 과정

"int a = 4;"에서 a의 데이터 타입이 int형이라고 정하는 것을 말한다.

 


 

정적 바인딩(Static Binding)이란?

컴파일 시점에 결정되는 바인딩을 정적 바인딩이라고 함!

소스상에 명시적으로 타입과, 그 타입의 변수명을 선언하는 것

 

장점

- 컴파일 시 타입에 대한 정보가 결정되기 때문에 실행 속도가 빠름

- 타입 에러로 인한 문제를 초기에 발견할 수 있어 안정성 ⬆

 

단점

- 컴파일 시 결정이 되고 그 이후로는 변경이 불가능

 


 

동적 바인딩(Dynamic Binding)이란?

런타임 시점에 이루어지는 바인딩 과정을 동적 바인딩이라고 함!

CPP에서 가상 함수 오버라이딩이 동적 바인딩에 해당된다.

가상 함수에 대해 알고 싶다면 아래 링크 클릭!

장점

- 실행 도중 필요한 객체의 함수를 호출할 수 있는 유연성을 갖고 있음

 

단점

- 변수의 예상치 못한 타입으로 type error가 날 수 있음. 안정성 떨어짐.

 

 

표로 보기 좋게 정리!

728x90