- 순서
- 바인딩이란?
- 정적 바인딩
- 동적 바인딩
- 구조적 바인딩
- 바인딩이란?
- 함수 호출이나 변수 참조를 실제 메모리 상의 대상과 연결하는 과정
- 실제 대상을 연결하는 시점에 따라 정적 바인딩과 동적 바인딩으로 나뉨
- 정적 바인딩
- 컴파일 시점에 어떤 함수/변수를 호출할지 결정
- 일반함수 호출, 오버로딩된 함수 선택, 템플릿 인스턴스화, inline 함수
- 오버로딩에 사용
- 특징
- 빠르고 최적화 가능(컴파일러가 대상 함수의 주소를 미리 알고 있기 때문)
- 다형성 지원 불가
- 동적 바인딩
- 런타임 시점에 어떤 함수가 호출될지 결정
- C++에서 virtual 함수로 구현됨
- 오버라이딩에 사
- 특징
- 실행 속도는 정적 바인딩보다 조금 느림(vtable lookup 필요)
- 다형성 구현 가능 > 실제 객체 타입에 맞는 동작 수행
- 객체지향적 설계에서 핵심
- 구조적 바인딩
- C++17부터 지원되는 기능으로 배열, 튜플, 구조체 등의 여러 값을 가진 객체를 풀어서 개별 변수에 바인딩할 수 있는 문법
- ex) auto[a, b] = myTuple; 과 같은 튜플의 요소를 a와 b 변수에 바로 바인딩 가능 a와 b를 출력하면 myTuple의 a, b에 맞는 값이 출력됨.
'C++' 카테고리의 다른 글
| [C++] 매크로 함수와 inline키워드 (0) | 2025.09.03 |
|---|---|
| [C++] 오버로딩과 오버라이딩 (0) | 2025.09.03 |
| [C++] 가상 함수 (0) | 2025.09.03 |
| [C++]const 키워드 (0) | 2025.09.03 |
| [C++]static 키워드 (0) | 2025.09.03 |