c++有什么用 構(gòu)造函數(shù)調(diào)用虛函數(shù)時(shí)各有什么特點(diǎn)?
構(gòu)造函數(shù)調(diào)用虛函數(shù)時(shí)各有什么特點(diǎn)?不要在構(gòu)造函數(shù)中調(diào)用虛擬函數(shù)。在基類(lèi)的構(gòu)造中,虛函數(shù)是非虛函數(shù),不會(huì)進(jìn)入派生類(lèi)。它是一個(gè)靜態(tài)綁定。顯然:當(dāng)我們構(gòu)造子類(lèi)的對(duì)象時(shí),我們首先調(diào)用基類(lèi)的構(gòu)造函數(shù)來(lái)構(gòu)造子類(lèi)中
構(gòu)造函數(shù)調(diào)用虛函數(shù)時(shí)各有什么特點(diǎn)?
不要在構(gòu)造函數(shù)中調(diào)用虛擬函數(shù)。在基類(lèi)的構(gòu)造中,虛函數(shù)是非虛函數(shù),不會(huì)進(jìn)入派生類(lèi)。它是一個(gè)靜態(tài)綁定。顯然:當(dāng)我們構(gòu)造子類(lèi)的對(duì)象時(shí),我們首先調(diào)用基類(lèi)的構(gòu)造函數(shù)來(lái)構(gòu)造子類(lèi)中基類(lèi)的一部分。子類(lèi)尚未構(gòu)造且尚未初始化。如果我們?cè)诨?lèi)的構(gòu)造中調(diào)用虛函數(shù),如果可以的話,調(diào)用一個(gè)尚未初始化的對(duì)象是非常危險(xiǎn)的,所以在構(gòu)造父類(lèi)對(duì)象的部分時(shí),不允許調(diào)用子類(lèi)的虛函數(shù)實(shí)現(xiàn)。但并不是說(shuō)你不能那樣編程