對象模型
指針指向子類,通過指針調(diào)用虛函數(shù)熏版,自動調(diào)用子類的虛函數(shù)實現(xiàn)纷责,
指針調(diào)用虛函數(shù)時撼短,不做靜態(tài)綁定,做動態(tài)綁定曲横。
通過指針,找到虛指針禾嫉,再找到虛函數(shù)列表灾杰,找到一個相應(yīng)的函數(shù)
(*(p->vptr)[n])(p);//n指虛函數(shù)在虛函數(shù)列表的第幾個。
(* p->vptr[n])(p);
靜態(tài)綁定和動態(tài)綁定
必須通過指針調(diào)用熙参,并且upcast艳吠,保證調(diào)用。
虛機制孽椰,多態(tài)昭娩,等等名詞指的是同一件事情
關(guān)于this:分析時要很清楚this的意思
const
成員函數(shù)后可根const,一般全局函數(shù)不加
const 對象 和 non-const
static黍匾,const 這些東西要從原理理解
const object 不能調(diào)用non-const 函數(shù)
copy on write cow
當(dāng)成員函數(shù)的const和non-const版本同事存在時const object只能調(diào)用const 版本栏渺,non-const只能調(diào)用non-const
new 和delete 可以重載
::new
::delete
繞過重載,調(diào)用全局函數(shù)