何时在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_ptr
unique_ptr
- 3 回答
- 0 关注
- 287 浏览
添加回答
举报
0/150
提交
取消