我真的很難理解指針,所以請原諒我這個問題可能有任何含糊之處。是的,我提出了不止一個問題,但標題中的問題是迄今爲止最重要的問題。其他問題只是我非常感謝你回答的問題。因此,可以說我有一個類,它看起來是這樣的:我應該刪除一個指向類的解構器(C++)中的int的指針嗎?
class myclass
{
public:
myclass();
~myclass();
private:
struct node
{
node * next;
}
node * head;
int myint;
}
現在,因爲我知道,人們會呼籲各爲類和結構構造,以及deconstructors。我被告知不應該在解構器中刪除整數,但是刪除指向整數的指針呢?不應該像這樣在解構器中刪除:
myclass::~myclass
{
delete head;
delete &myint;
}
如果沒有,爲什麼?
如果您只想回答該問題,請不要再閱讀。爲了簡便起見,我的下一個問題是關於這個代碼,上面的解構,這是我一直在說是錯誤的(假設這是相同的文件上面的解構的一部分):
myclass::node::~node
{
delete next;
}
更多具體來說,我被告知我不應該刪除節點,除非它們已被聲明爲new
標記。不用說,我覺得很混亂。如果可以的話,你能解釋一下它們的含義嗎?爲什麼他們說的是真的?解釋這一點的鏈接同樣值得讚賞,只是明白我是編程新手,幾個月前我剛開始學習C++。
規則很簡單:如果你分配它,你需要最終釋放它。 – Barmar
http://stackoverflow.com/questions/5727/what-are-the-barriers-to-understanding-pointers-and-what-can-be-done-to-overcome?lq=1 – Barmar
@Barmar這是唯一的這一點提高了我對指針的理解。謝謝! – Larrimus