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