為什么構(gòu)造函數(shù)不能是虛函數(shù) 構(gòu)造函數(shù)為什么不可以聲明為虛函數(shù)?
構(gòu)造函數(shù)為什么不可以聲明為虛函數(shù)?如果目標(biāo)文件中有一個(gè)符號表,最直觀的方法是在符號表中找到與修改后的構(gòu)造函數(shù)名稱相對應(yīng)的地址項(xiàng)。如何操作取決于主體需要在什么條件下找到地址去做。構(gòu)造函數(shù),靜態(tài)函數(shù)可不可
構(gòu)造函數(shù)為什么不可以聲明為虛函數(shù)?
如果目標(biāo)文件中有一個(gè)符號表,最直觀的方法是在符號表中找到與修改后的構(gòu)造函數(shù)名稱相對應(yīng)的地址項(xiàng)。如何操作取決于主體需要在什么條件下找到地址去做。
構(gòu)造函數(shù),靜態(tài)函數(shù)可不可以為虛函數(shù)?
構(gòu)造函數(shù)不能聲明為虛擬函數(shù)的原因是,在多態(tài)性的情況下,所謂的虛擬函數(shù)只執(zhí)行一個(gè)。從繼承的概念來看,總是需要先構(gòu)造父類對象,然后再構(gòu)造子類對象。如果構(gòu)造函數(shù)被設(shè)置為虛函數(shù),那么在構(gòu)造父類的構(gòu)造函數(shù)時(shí),必須顯示調(diào)用構(gòu)造。另一個(gè)原因是為了防止錯(cuò)誤:如果您不小心重寫了一個(gè)與子類中父類的構(gòu)造函數(shù)相同的函數(shù),那么您的父類的構(gòu)造函數(shù)將被重寫,也就是說,您無法完成父類的構(gòu)造。會有一個(gè)錯(cuò)誤。---在子類繼承父類的public方法之后,可以向public添加新方法和屬性(屬性通常放在private或protect中)。這不是事實(shí),這是繼承的基本用法