C++

[C++] 바인딩

programmer-faust 2025. 9. 3. 09:56
  • 순서
    1. 바인딩이란?
    2. 정적 바인딩
    3. 동적 바인딩
    4. 구조적 바인딩
  • 바인딩이란?
    1. 함수 호출이나 변수 참조를 실제 메모리 상의 대상과 연결하는 과정
    2. 실제 대상을 연결하는 시점에 따라 정적 바인딩과 동적 바인딩으로 나뉨
  • 정적 바인딩
    1. 컴파일 시점에 어떤 함수/변수를 호출할지 결정
    2. 일반함수 호출, 오버로딩된 함수 선택, 템플릿 인스턴스화, inline 함수
    3. 오버로딩에 사용
    4. 특징
      • 빠르고 최적화 가능(컴파일러가 대상 함수의 주소를 미리 알고 있기 때문)
      • 다형성 지원 불가
  • 동적 바인딩
    1. 런타임 시점에 어떤 함수가 호출될지 결정
    2. C++에서 virtual 함수로 구현됨
    3. 오버라이딩에 사
    4. 특징
      • 실행 속도는 정적 바인딩보다 조금 느림(vtable lookup 필요)
      • 다형성 구현 가능 > 실제 객체 타입에 맞는 동작 수행
      • 객체지향적 설계에서 핵심
  • 구조적 바인딩
    1. C++17부터 지원되는 기능으로 배열, 튜플, 구조체 등의 여러 값을 가진 객체를 풀어서 개별 변수에 바인딩할 수 있는 문법
    2. 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