C++支持三種類型的成員函數:靜態,非靜態、和虛函數
虛函數細節:
每個class有一個virtual table,內含該class之中有作用的virtual function地址,然後每個object有一個vptr,指向virtual table的所在。
對於虛函數ptr->z();的調用,需要知道如下兩點:
1.ptr所指對象的真實類型,可使選擇正確的z()實體;
2.z()實體位置
多重繼承之下,一個derived class內含n-1個額外的virtual tables。
C++支持三種類型的成員函數:靜態,非靜態、和虛函數
虛函數細節:
每個class有一個virtual table,內含該class之中有作用的virtual function地址,然後每個object有一個vptr,指向virtual table的所在。
對於虛函數ptr->z();的調用,需要知道如下兩點:
1.ptr所指對象的真實類型,可使選擇正確的z()實體;
2.z()實體位置
多重繼承之下,一個derived class內含n-1個額外的virtual tables。