我有一個類的對象指針向量。我已經在這個矢量中引入了一些元素,並且在我的主文件中,我設法打印它們並添加沒有問題的其他元素。現在我試圖從該向量中移除一個元素,並檢查它是否不是NULL,但它不起作用。指向對象的C++麻煩
我是在類測試加油吧:
Other *a = new Other(1,1);
Other *b = new Other(2,2);
Other *c = new Other(3,3);
v->push_back(a);
v->push_back(b);
v->push_back(c);
而且在我的主文件我有:
Test t;
(...)
Other *pointer = t.vect->at(0);
delete t.vect->at(0);
t.vect->erase(t.vect->begin());
if (pointer == NULL) { cout << "Nothing here.."; } // Never enters here..
你只需要設置在刪除它之後立即指向NULL。它可能看起來多餘,但事實並非如此。刪除釋放內存,將其設置爲NULL讓你檢查它是否已被刪除。 – zxcvbnm 2010-04-18 01:07:43
@zxcvbnm:這是一個很好的做法,但在這種情況下不起作用。 Zibd有兩個指向同一個對象的指針;使用其中一個刪除該對象,然後將其設置爲NULL仍然使其他指向釋放的內存。 – Beta 2010-04-18 03:15:21