可能重复
在C++中正确的堆栈和堆使用?
我开始从Java背景学习C++,一个很大的区别是我不再被迫:
就像Java中的情况一样.但我很困惑何时应该做什么 - 你能建议吗?
目前我很想开始做Java风格的一切
Thing *thing = new Thing();
thing->whatever();
// etc etc
Run Code Online (Sandbox Code Playgroud)
除非你知道为什么需要它们,否则不要使用指针.如果您只需要一段时间的对象,请在堆栈上分配它:
Object object;
object.Method();
Run Code Online (Sandbox Code Playgroud)
如果需要将对象传递给函数,请使用引用:
int doStuff( Object& object )
{
object.Method();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果需要,只使用指针
如果使用指针,则需要在不再需要这些对象时以及在对象的最后一个指针变为不可缓存之前解除分配对象,因为C++没有内置垃圾回收.为简化此操作,使用智能指针行std :: auto_ptr或boost :: shared_ptr.
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |