dynamic binding 2

[C++] 동적 바인딩과 가상 함수에 대한 짧게 읽을거리

안녕하세요. 이번에는 C++ 동적 바인딩과 이를 가능하게 하는 가상 함수 개념에 간단하게 확인해 보겠습니다. 1. 동적 바인딩 (Dynamic Binding) 이란? 동적 바인딩 또는 늦은 바인딩 (Late Binding)은 실행 시점(Runtime)에 호출될 함수를 결정하는 방식입니다. 이는 컴파일 시점에 호출될 함수가 결정되는 정적 바인딩 (Static Binding)과 대조가 되는 개념입니다. C++에서는 주로 가상 함수 (Virtual Functions)를 통해 동적 바인딩을 구현합니다. 2. 가상 함수 (Virtual Functions) 이전 글에서도 한번 설명하였습니다. 가상 함수는 기반 클래스에서 virtual 키워드를 사용하여 선언된 함수입니다. 파생 클래스에서 이 가상 함수를 ..

Programming/C, C++ 2025.04.17

[C++] 가상 함수에서 조금 알아두면 좋은 간단한 읽을거리(vtable, pure virtual function 포함)

안녕하세요.  C++ 가상 함수에 대해서 조금 알아보려고 합니다. 뭐 virtual 만 붙이면 되는 거 아니야?라고 할 수 있지만, 간단한 원리, vtable 구조, 장단점 등을 조금 알아보겠습니다.  C++에서 가상 함수(virtual function)는 객체 지향 프로그래밍의 다형성(polymorphism)을 구현하는 핵심 개념입니다. 이를 통해 기본 클래스 포인터 또는 참조를 사용하더라도, 런타임에 실제 객체의 타입에 따라 적절한 함수가 호출되도록 만들 수 있습니다.   1. 가상 함수란? — 런타임 다형성의 시작  가상 함수는 기본 클래스에서 virtual 키워드로 선언되며, 파생 클래스에서 재정의(override)할 수 있습니다. 가상 함수 호출은 정적 바인딩(static binding)이 아닌..

Programming/C, C++ 2025.04.05