1. C++中的內(nèi)存分布?2. 在成員函數(shù)中調(diào)用delete this會(huì)出現(xiàn)什么問(wèn)題呢?對(duì)象還可以使用嗎?3. 如果在類的析構(gòu)函數(shù)調(diào)用delete this會(huì)出現(xiàn)什么問(wèn)題?4. 類對(duì)象的內(nèi)存大小手那些因素影響?1. 包括堆、棧、全局/靜態(tài)變量區(qū)、常量區(qū)、代碼區(qū);在執(zhí)行函數(shù)的時(shí)候,函數(shù)內(nèi)部變量的存儲(chǔ)單元可以在棧上創(chuàng)建,函數(shù)執(zhí)行結(jié)束時(shí)這些存儲(chǔ)單元自動(dòng)釋放。堆區(qū)是由用戶采用new創(chuàng)建并使用delete釋放,需要人為手動(dòng)釋放,如果忘記,可能會(huì)造成內(nèi)存泄漏;全局/靜態(tài)變量區(qū)一般存儲(chǔ)全局的變量和由static聲明的變量;常量區(qū)指的是不可以更改的變量;代碼區(qū)存放程序的二進(jìn)制代碼;2. 在類對(duì)象的內(nèi)存空間中,只有數(shù)據(jù)成員和虛函數(shù)表指針,并不包含代碼內(nèi)容,類的成員函數(shù)單獨(dú)放在代碼段中。調(diào)用了delete this指針后,會(huì)將類對(duì)象的內(nèi)存空間釋放;后續(xù)只要不要涉及到this指針的內(nèi)容,都能夠正常運(yùn)行;3. 會(huì)導(dǎo)致堆棧溢出;因?yàn)闀?huì)反復(fù)調(diào)用本對(duì)象的析構(gòu)函數(shù),導(dǎo)致無(wú)限循環(huán);4. 類的非靜態(tài)成員變量大小;內(nèi)存對(duì)齊另外分配的空間大小;擁有虛函數(shù)的話,會(huì)在類對(duì)象中插入vptr指針;如果該類是派生類的話,會(huì)繼承基類部分的數(shù)據(jù)成員;