C++面向對象高級編程學習筆記!吃灰系列,拿去收藏吧!

◇ vptr&vtbl

對象在內存中存在一個虛函數指針,其通常存在於數據成員以前,虛函數指針指向虛函數表,在虛函數表中按照函數聲明順序存儲着虛函數的地址。編程

能夠用(*(p->vptr)[n])(p);或者(*p->vptr[n])(p);訪問。函數

 

◇ 動態綁定

當對象知足:學習

    一、使用指針調用this

    二、指針存在向上轉型 UPcastspa

    三、調用對象是一個虛函數指針

則編譯器會在編譯時進行動態綁定。視頻

 

◇ 對象模型&關於this


 

經過將須要子類實現的功能聲明爲virtual函數,使子類的this指針能夠upcast 調用父類函數,內部使用不一樣子類的具體實現。對象

 

◇ const

const成員函數,const能夠修飾成員函數來避免成員函數對this指針的修改;blog

當成員函數的const和non-const版本都存在時,const成員只能調用const版本;內存

non-const成員只能調用non-const版本。


 

 

◇ new&delete

咱們能夠對operator new和operator delete進行各類版本的重載,可是每一個版本都須要有本身的獨特參數序列

其中第一個參數必須是size_t.

對於operator delete的各類重載版本,它們雖然能夠被重載,可是不會被delete調用,只有當new 調用的構造函數拋出異常時,它們纔會被調用,用來清除申請失敗對象的內存。

固然咱們也能夠經過使用域做用符::來強制使用全局new和全局delete,調用方法是::new和::delete!

今天的學習就止步如此吧,明天的你也要繼續加油啊~


 

最後,無論你是轉行也好,初學也罷,進階也可,若是你想學編程~

【值得關注】個人 C/C++編程學習交流俱樂部!【點擊進入】

問題答疑,學習交流,技術探討,還有超多編程資源大全,零基礎的視頻也超棒~

相關文章
相關標籤/搜索