爲何構造函數不能是虛函數?

爲何構造函數不能是虛函數?這裏須要明白一個概念,那就是虛函數表vtbl,每個擁有虛函數成員函數的類都有一個指向虛函數表的指針。對象經過虛函數表裏存儲的函數地址來調用虛函數。網絡

那虛函數表的指針是在何時初始化的呢?固然是構造函數。當咱們經過new來建立一個對象的時候,第一步是申請須要的內存,第二部就是調用構造函數。試想,若是構造函數是虛函數,那麼必然須要經過vtbl來找到虛函數的人口地址,顯然,咱們申請的內存尚未作任何初始化,不可能有vtbl的。所以,構造函數不能是虛函數。函數

摘自網絡。指針

相關文章
相關標籤/搜索