真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

首先,我寫了一個(gè)構(gòu)造函數(shù)用virtual修飾的類A,代碼如下:

創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元亞東做網(wǎng)站,已為上家服務(wù),為亞東各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575

class A
{
public:
	virtual A()
	{}
};

運(yùn)行結(jié)果:(我是在VS下運(yùn)行的)

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

可以看出這樣的代碼編譯時(shí)是有問題的。

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

這里你需要知道一個(gè)概念,那就是虛函數(shù)表vtbl,每一個(gè)擁有虛成員函數(shù)的類都有一個(gè)指向虛函數(shù)表的指針。對象通過虛函數(shù)表里存儲的虛函數(shù)地址來調(diào)用虛函數(shù)。

那虛函數(shù)表指針是什么時(shí)候初始化的呢?當(dāng)然是構(gòu)造函數(shù)。當(dāng)我們通過new來創(chuàng)建一個(gè)對象的時(shí)候,第一步是申請需要的內(nèi)存,第二步就是調(diào)用構(gòu)造函數(shù)。試想,如果構(gòu)造函數(shù)是虛函數(shù),那必然需要通過vtbl來找到虛構(gòu)造函數(shù)的入口地址,顯然,我們申請的內(nèi)存還沒有做任何初始化,不可能有vtbl的。因此,構(gòu)造函數(shù)不能是虛函數(shù)。


當(dāng)前文章:為什么構(gòu)造函數(shù)不能是虛函數(shù)
本文鏈接:http://weahome.cn/article/iieddi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部