看板 C_and_CPP 關於我們 聯絡資訊
不好意思來問一些簡單的觀念,我有爬過文了。 1. 如果vector中把某個element erase掉,我有查過google的C++ reference 它是說會執行那個element的destructor之後才做erase的動作。 我是這樣子理解的: 如果element是裝物件則erase前會執行destructor,但如果是裝指向某物件的指標, 則只是erase掉那個裝指標的element,並不會對那個物件做任何事, 想要那個物件消失必須要自己做delete(假使物件的建立是用new來的) 我這樣子理解對嗎? 同理,clear 應該也是一樣意思嗎? 2. 如果在class內宣告一個vector的member, 那執行時,這個vector的生命週期應該跟這個物件一樣長, 那當物件生命結束時,vector內的element怎辦? 需要另外執行clear嗎? 我覺得可以不管它,vector生命結束前也會自己執行它的destructor, 只要確保裡面的element不會產生memory leakage即可,我這樣子理解對嗎? 感謝大家! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.222.238
ilway25:我覺得都對 07/18 22:40
ilovebbs:裝什麼就砍什麼 07/18 23:13