一、虛指針(vptr) ? ? ? ? ? 虛表(vtbl)

vptr:
若類對(duì)象中含有虛函數(shù),則在對(duì)象模型中會(huì)存在一根虛函數(shù)指針
vtbl:虛函數(shù)指針指向一塊內(nèi)存,稱為虛表??梢詫⑺斫鉃橐环N表格,每個(gè)表格的位置存放一個(gè)虛函數(shù)對(duì)應(yīng)內(nèi)存的地址;
二、關(guān)于this
通過this指針調(diào)用虛函數(shù)指針指向虛表中實(shí)際對(duì)應(yīng)的虛函數(shù)。
舉例理解:class類比作房子,this就好比一把鑰匙,通過鑰匙來打開了這座房子的門,那么里面的東西就隨意你取用了。
his作用域是在類內(nèi)部,當(dāng)在類的非靜態(tài)成員函數(shù)中訪問類的非靜態(tài)成員的時(shí)候,編譯器會(huì)自動(dòng)將對(duì)象本身的地址作為一個(gè)隱含參數(shù)傳遞給函數(shù)。
三、動(dòng)態(tài)綁定
需要滿足三個(gè)條件:
1.使用指針調(diào)用
2.存在向上轉(zhuǎn)型
3.調(diào)用的是虛函數(shù)
四、const
表示此函數(shù)保證不更改data members。

由上圖可以看到:
常量(const)對(duì)象可以調(diào)用const成員函數(shù)
const對(duì)象不可以調(diào)用non-const成員函數(shù)
非常量(non-const)對(duì)象可以調(diào)用const成員函數(shù)
non-const對(duì)象可以調(diào)用non-const成員函數(shù)
五、關(guān)于new 和 delete
1)全局的new/delete:
::operator new(),?
::operator delete(),?
如果重載全局的new和delete,將影響整個(gè)項(xiàng)目
2)類成員的new和delete
?如果沒有定義成員new/delete,則調(diào)用全局的new/delete
如果定義了成員new/delete的類,可以使用::前綴強(qiáng)制調(diào)用全局new/delete
六、總結(jié)
這節(jié)課講了較多概念性的東西,在整個(gè)c++學(xué)習(xí)中都有用,需要經(jīng)常鞏固。