構(gòu)造函數(shù)的八種方法 構(gòu)造函數(shù)為什么不可以聲明為虛函數(shù)?
構(gòu)造函數(shù)為什么不可以聲明為虛函數(shù)?如果目標(biāo)文件中有一個符號表,最直觀的方法是在符號表中找到與修改后的構(gòu)造函數(shù)名稱相對應(yīng)的地址項(xiàng)。如何操作取決于主體需要在什么條件下找到地址去做。構(gòu)造函數(shù)調(diào)用虛函數(shù)時各有
構(gòu)造函數(shù)為什么不可以聲明為虛函數(shù)?
如果目標(biāo)文件中有一個符號表,最直觀的方法是在符號表中找到與修改后的構(gòu)造函數(shù)名稱相對應(yīng)的地址項(xiàng)。如何操作取決于主體需要在什么條件下找到地址去做。
構(gòu)造函數(shù)調(diào)用虛函數(shù)時各有什么特點(diǎn)?
不要在構(gòu)造函數(shù)中調(diào)用虛擬函數(shù)。在基類的構(gòu)造中,虛函數(shù)是非虛函數(shù),不會進(jìn)入派生類。它是一個靜態(tài)綁定。很明顯,當(dāng)我們構(gòu)造對象的子類時,我們調(diào)用基類的構(gòu)造函數(shù)并構(gòu)造子類的基類部分。子類尚未構(gòu)造且尚未初始化。如果在基類的構(gòu)造中調(diào)用虛函數(shù),如果可能的話,調(diào)用一個尚未初始化的對象是非常危險的,所以在構(gòu)造父類對象的部分時,不允許調(diào)用子類的虛函數(shù)實(shí)現(xiàn)。但并不是說你不能那樣編程