国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

虛函數(shù)與純虛函數(shù) 為什么構(gòu)造函數(shù)不能是虛函數(shù)?

為什么構(gòu)造函數(shù)不能是虛函數(shù)?構(gòu)造函數(shù)不能聲明為虛擬函數(shù)的原因是所謂的虛擬函數(shù)在多態(tài)性的情況下只執(zhí)行一個(gè)。從繼承的概念來看,總是需要先構(gòu)造父類對(duì)象,然后再構(gòu)造子類對(duì)象。如果構(gòu)造函數(shù)設(shè)置為虛函數(shù),那么在構(gòu)

為什么構(gòu)造函數(shù)不能是虛函數(shù)?

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

構(gòu)造函數(shù)為什么不可以聲明為虛函數(shù)?

不要在構(gòu)造函數(shù)中調(diào)用虛擬函數(shù)。在基類的構(gòu)造中,虛函數(shù)是非虛函數(shù),不會(huì)進(jìn)入派生類。它是一個(gè)靜態(tài)綁定。很明顯,當(dāng)我們構(gòu)造對(duì)象的子類時(shí),我們調(diào)用基類的構(gòu)造函數(shù)并構(gòu)造子類的基類部分。子類尚未構(gòu)造且尚未初始化。如果在基類的構(gòu)造中調(diào)用虛函數(shù),如果可能的話,調(diào)用一個(gè)尚未初始化的對(duì)象是非常危險(xiǎn)的,所以在構(gòu)造父類對(duì)象的部分時(shí),不允許調(diào)用子類的虛函數(shù)實(shí)現(xiàn)。但這并不意味著你不能寫這樣的程序

構(gòu)造函數(shù)的左右兩邊是初始化變量的值等等。VC的語法是只要用戶定義了構(gòu)造函數(shù),系統(tǒng)就不會(huì)提供任何構(gòu)造函數(shù)。如果將其定義為虛擬函數(shù),則程序無法在開始時(shí)初始化變量,也無法應(yīng)用內(nèi)存空間,程序也無法運(yùn)行