예전/C, C++
[C++] binding
showmiso
2014. 1. 28. 12:36
binding은 값을 할당한다. 혹은 A와 B를 연결한다는 뜻을 가졌다.
프로그래밍에서는 정적 바인딩과 동적 바인딩 2개의 바인딩이 있다.
정적 바인딩(static binding)이란 컴파일 시간에 결정 되는 것으로 속도가 빠르다.
[C++, C#]
동적 바인딩(dynamic binding)은 컴파일 시간에 기계어 코드를 생성하고, 실행시간에 호출 되는 것이다.
실행 하고 조사하는 것으로 성능 저하가 있다.
[java, objective-C,C++의 virtual function]
1과 2는 예상한대로 Animal Cry와 Dog Cry 가 나온다.
3은 Animal Cry가 나온다.
n이 무엇을 입력받는가에 따라서
p = &d 일지 p = &a 일지 가 결정된다.
n은 실행시간 중에 결정된 것이다.
p는 객체는 알 수 없고 무슨 타입인지만 알고 있다.
컴파일 시간에 포인터의 타입만 알 수 있기 때문에 ( static binding )
Animal Cry가 호출된다.