構(gòu)造函數(shù)的八種方法 構(gòu)造函數(shù)為什么不可以聲明為虛函數(shù)?
構(gòu)造函數(shù)為什么不可以聲明為虛函數(shù)?如果目標(biāo)文件中有一個(gè)符號(hào)表,最直觀的方法是在符號(hào)表中找到與修改后的構(gòu)造函數(shù)名稱(chēng)相對(duì)應(yīng)的地址項(xiàng)。如何操作取決于主體需要在什么條件下找到地址去做。構(gòu)造函數(shù)調(diào)用虛函數(shù)時(shí)各有
構(gòu)造函數(shù)為什么不可以聲明為虛函數(shù)?
如果目標(biāo)文件中有一個(gè)符號(hào)表,最直觀的方法是在符號(hào)表中找到與修改后的構(gòu)造函數(shù)名稱(chēng)相對(duì)應(yīng)的地址項(xiàng)。如何操作取決于主體需要在什么條件下找到地址去做。
構(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)造對(duì)象的子類(lèi)時(shí),我們調(diào)用基類(lèi)的構(gòu)造函數(shù)并構(gòu)造子類(lèi)的基類(lèi)部分。子類(lèi)尚未構(gòu)造且尚未初始化。如果在基類(lèi)的構(gòu)造中調(diào)用虛函數(shù),如果可能的話(huà),調(diào)用一個(gè)尚未初始化的對(duì)象是非常危險(xiǎn)的,所以在構(gòu)造父類(lèi)對(duì)象的部分時(shí),不允許調(diào)用子類(lèi)的虛函數(shù)實(shí)現(xiàn)。但并不是說(shuō)你不能那樣編程