1. 建立對象時,須要肯定對象的類型,而虛函數是在運行時動態肯定其類型的。在構造一個對象時,因爲對象還未建立成功,編譯器沒法知道對象的實際類型;函數
2. 虛函數的調用須要經過vptr虛函數表指針,而該指針是存放在對象的內存空間中的,若構造函數聲明爲虛函數,那麼因爲對象還沒有建立,尚未內存空間,也就沒有對應虛函數表來調用虛構造函數了;指針
3. 虛函數的做用在於經過父類的指針或者引用,在調用它的時候可以經過動態鏈編調用子類重寫的虛成員函數。而構造函數是在建立對象時是系統自動調用的,不可能經過父類或者引用去調用,所以就規定構造函數不能是虛函數。對象