何時在C+中使用新關鍵字?我使用C+已經有一段時間了,我一直在想新的關鍵詞。簡單地說,我是否應該使用它?1)新的關鍵詞.。MyClass* myClass = new MyClass();myClass->MyField = "Hello world!";2)沒有新的關鍵詞.。MyClass myClass;myClass.MyField = "Hello world!";從實現的角度來看,它們看起來并沒有什么不同(但我確信它們是不同的).然而,我的主要語言是C#,當然第一種方法是我所習慣的。困難似乎是方法1更難用于STD C+類。我應該用哪種方法?更新1:我最近用了新的關鍵字用于堆記憶(或免費商店)用于超出作用域的大型數組(即從函數返回)。在我使用堆棧之前,它導致一半的元素在作用域之外被破壞,切換到堆使用可以確保元素是有技巧的。耶!更新2:我的一位朋友最近告訴我,使用new關鍵字;每次鍵入new、類型delete.Foobar *foobar = new Foobar();delete foobar; // TODO: Move this to the right place.這有助于防止內存泄漏,因為您總是必須將刪除放在某個地方(即,當您剪切并粘貼到析構函數或其他地方時)。
3 回答
神不在的星期二
TA貢獻1963條經驗 獲得超6個贊
我應該用哪種方法?
delete
auto_ptrunique_ptr
- 3 回答
- 0 關注
- 319 瀏覽
添加回答
舉報
0/150
提交
取消
