반응형

vtable 3

RTTI(Run Time Type Information)

런타임에 vtable과 추가적인 타입 메타 데이터를 사용하여 객체의 실제 타입을 확인하는 동적 메커니즘, 약간의 메모리 성능 오버헤드가 발생 할 수 있다.프로그램 실행 중(런타임)에 객체의 실제 타입을 확인한다순수 가상 함수가 있어야 한다.dtnamic_cast 연산자나 typeid 연산자를 사용한다주로 다형성을 활용할 때 상위 클래스 포인터가 실제 어떤 하위 클래스 인스턴스를 가르키는지 확인 할 때 사용한다 vtable(가상 함수 테이블) 개념vtable은 가상 함수를 하나 이상 포함하는 클래스에서 컴파일러에 의해 생성되는 virtual 함수들의 실제 함수 주소를 순서대로 저장하는 정적 배열이다 . c++에서 런타임 바인딩을 정적 타이핑 기반codehortus.tistory.com클래스에 가상 함수가..

c++/객체지향 2025.11.30

vtable(가상 함수 테이블) 개념

vtable은 가상 함수를 하나 이상 포함하는 클래스에서 컴파일러에 의해 생성되는 virtual 함수들의 실제 함수 주소를 순서대로 저장하는 정적 배열이다 . c++에서 런타임 바인딩을 정적 타이핑 기반 언어에서 허용하기 위해 채택환 관습적 기법virtual 함수가 있는 클래스의 객체들은 가상 포인터 vptr(8byte)을 하나 가지고 vptr은 객체 타입의 vtable을 가르킨다.vptr : 가상 테이블 포인터로 객체의 첫번째 멤버로 배치되는 것이 관습적c++이 런타임 바인딩을 정적 타이핑 기반 언어에서 허용하기 위해 채택한 관습적 기법이다 .GCC, Clang, MSVC는 각각 C++ ABI(응용 프로그램 이진 인터페이스**)**의 구현이 다르며, 이로 인해 vtable의 레이아웃과 동작 방식에도 차..

c++/객체지향 2025.11.30

순수가상함수

선언만 있고 구현이 없는 가상함수, 상속 관계에서 파생 클래스가 특정 함수를 반드시 재정의 하도록 강제하는 역활virtual void functionName() = 0;순수 가상 함수가 하나라도 있으면 해당 클래스는 추상 클래스라 하고 객체(인스턴스) 를 생성 할 수 없고 다른 클래스의 상속을 주기 위한 목적으로 사용됨virtual 이 없으면 =0 키워드를 쓸 수 없음왜 필요한가부모 클래스가 공통된 규약 만 정하고구현은 자식 클래스가 책임 지도록 강제하는 방식객체지향 설계에서 인터페이스와 추상 계층을 분리할 때 가장 흔히 쓰인다.작동 방식(vtable관점) vtable(가상 함수 테이블) 개념vtable은 가상 함수를 하나 이상 포함하는 클래스에서 컴파일러에 의해 생성되는 virtual 함수들의 실제 함..

c++/객체지향 2025.11.30
반응형