2011-05-15 36 views

回答

3

Ehm ...不要自己調用析構函數,只有當您分配對象所在的空間時纔會使用新的位置。
也就是說,不同的是,release是有效的,並使對象處於有效狀態,並有可能接受另一個指針。
~auto_ptr將破壞對象並使其處於無效狀態,在調用析構函數後使用它是未定義的行爲。

8

的auto_ptr ::釋放()

設置的auto_ptr內部指針爲空指針(它指向沒有對象,其指示),而不破壞當前由auto_ptr的指向該對象。它將內部指針的值設置爲null之前返回該值。 在致電release()之後,auto_ptr仍然可以指向另一個對象。

的auto_ptr ::〜auto_ptr的()

解除分配存儲器的塊中的對象「指向」使用刪除和自毀的對象。\調用~auto_ptr()auto_ptr被破壞,並且不應被進一步使用後。