2014-10-08 66 views
-6

在C中,您必須釋放程序分配的內存。對於C++中的對象也一樣嗎?刪除C++中的對象;

class Common 
{ 
    //some function declarations 
} 

void example() 
{ 
    Common obj; 
    //do stuff with obj 
    delete obj; 
} 

delete obj有多重要;這裏如果我asume函數示例()將被調用一次?

+0

你不會,實際上你**不應該''刪除'堆棧上的任何東西。那只有當你「新」這個物體。變量的內存將在變量超出範圍時自動釋放,在這種情況下,在您的「示例」功能結束時。 – CoryKramer 2014-10-08 20:02:44

+0

你的第一句話不完全正確。 – juanchopanza 2014-10-08 20:02:54

+0

這僅適用於動態分配的內存。 – 2014-10-08 20:03:00

回答

1

您沒有對delete函數的本地對象進行分配。您必須刪除使用運算符new分配的對象。

此外,delete運營商適用於指針。你的代碼片段不會被編譯。

+0

我明白了,謝謝! – user2858578 2014-10-08 20:05:47