對象模型
指針指向子類,通過指針調用虛函數,自動調用子類的虛函數實現,
指針調用虛函數時,不做靜態(tài)綁定,做動態(tài)綁定。
通過指針,找到虛指針,再找到虛函數列表,找到一個相應的函數
(*(p->vptr)[n])(p);//n指虛函數在虛函數列表的第幾個。
(* p->vptr[n])(p);
靜態(tài)綁定和動態(tài)綁定
必須通過指針調用,并且upcast,保證調用。
虛機制,多態(tài),等等名詞指的是同一件事情
關于this:分析時要很清楚this的意思
const
成員函數后可根const,一般全局函數不加
const 對象 和 non-const
static,const 這些東西要從原理理解
const object 不能調用non-const 函數
copy on write cow
當成員函數的const和non-const版本同事存在時const object只能調用const 版本,non-const只能調用non-const
new 和delete 可以重載
::new
::delete
繞過重載,調用全局函數