Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags more
Archives
Today
Total
관리 메뉴

난 정말 최고야 멋있어

vtable, vptr ... 본문

카테고리 없음

vtable, vptr ...

n00bh4cker 2020. 1. 7. 21:54

vptr -> void**    // vtable의주소를 가리킴

vptr[0] -> void*  //가상 함수 구현체의 주소를 가리킴

vptr[1] -> void* //가상 함수 구현체의 주소를 가리킴

 

(rat 은 shared_ptr로 만들었고 pAnimal은 raw pointer로 만들었음)

 

 

* 가상함수 구현체는 클래스마다 따로 정의 됨 (각각의 인스턴스마다 생기는 것 아님에 유의!!)

* 가상함수는 동적바인딩 됨... 즉, 컴파일 타임에 함수의 주소가 결정 되지 않고 런타임에 결정 됨!

* vtable에는 가상함수들의 주소만 담고 있음.  breath 함수 같은 경우는 virtual 함수가 아니므로 vtable에 없음