設置一個指針有沒有辦法做到:刪除,並在同一指令
A* a1 = /*something*/;
A* a2 = /*something else*/;
A* tmp = a1;
a1 = a2; // both a1 and a2 points to "something else"
delete tmp; // "something" is deleted
在一個單獨的語句,其中設置首先做什麼?類似的東西:
A* a1 = /*something*/;
A* a2 = /*something else*/;
set_and_delete(a1, a2); // ok
,設置來的拳頭,而不是做這對我很重要:
delete a1;
a1 = a2;
(如果需要的話,我可以解釋爲什麼,但似乎前面的例子就足以理解這個問題)
這是智能指針是(除其他事項外)。 – 2014-10-12 00:09:28
但是,真的不清楚爲什麼排序在這裏很重要。 – 2014-10-12 00:09:55
例如:一個列表。你會做 a1 = a1.nexta1,所以如果a1在復位之前被刪除,它會出錯 – 2014-10-12 00:11:14