何時(shí)在C+中使用新關(guān)鍵字?我使用C+已經(jīng)有一段時(shí)間了,我一直在想新的關(guān)鍵詞。簡(jiǎn)單地說(shuō),我是否應(yīng)該使用它?1)新的關(guān)鍵詞.。MyClass* myClass = new MyClass();myClass->MyField = "Hello world!";2)沒(méi)有新的關(guān)鍵詞.。MyClass myClass;myClass.MyField = "Hello world!";從實(shí)現(xiàn)的角度來(lái)看,它們看起來(lái)并沒(méi)有什么不同(但我確信它們是不同的).然而,我的主要語(yǔ)言是C#,當(dāng)然第一種方法是我所習(xí)慣的。困難似乎是方法1更難用于STD C+類(lèi)。我應(yīng)該用哪種方法?更新1:我最近用了新的關(guān)鍵字用于堆記憶(或免費(fèi)商店)用于超出作用域的大型數(shù)組(即從函數(shù)返回)。在我使用堆棧之前,它導(dǎo)致一半的元素在作用域之外被破壞,切換到堆使用可以確保元素是有技巧的。耶!更新2:我的一位朋友最近告訴我,使用new關(guān)鍵字;每次鍵入new、類(lèi)型delete.Foobar *foobar = new Foobar();delete foobar; // TODO: Move this to the right place.這有助于防止內(nèi)存泄漏,因?yàn)槟偸潜仨殞h除放在某個(gè)地方(即,當(dāng)您剪切并粘貼到析構(gòu)函數(shù)或其他地方時(shí))。
3 回答

神不在的星期二
TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
我應(yīng)該用哪種方法?
delete
auto_ptr
unique_ptr
- 3 回答
- 0 關(guān)注
- 308 瀏覽
添加回答
舉報(bào)
0/150
提交
取消