1. 程式人生 > >C++分析New和Delete----C語言Malloc和Free

C++分析New和Delete----C語言Malloc和Free

C++中為什麼不用Malloc和Free,而用New和Delete?

   <1> 如圖: 類的物件在堆上分配的時候用malloc和free:

我們觀察發現雖然在堆上申請空間了,但並沒有呼叫建構函式和解構函式。
    
發現並沒有呼叫我們自己寫的構造和解構函式:

    

<2>    用New和Delete觀察

           我們會發現建構函式和解構函式都呼叫了:
           
            觀察看到也申請了空間:      

           釋放空間:


由此可以總結:

new:    語法:型別名 *p = new 型別名可以跟malloc一樣分配物件記憶體。
new還可以呼叫解構函式。Delete: 可以和free一樣釋放空間。
     
還可以呼叫解構函式。

有什麼問題歡迎留言!~~~~