use*_*940 0 c++ memory-management
让我们考虑以下代码:
void main(int argc, char* argv[])
{
Foo foo;
//at this point I don't need foo any more
//a lot of stuff here
}
Run Code Online (Sandbox Code Playgroud)
如果我只需要foo很短的时间,那么在执行其余代码之前将它分配到堆上并删除是不是更好?
joh*_*ohn 11
不,最好写一个内部范围.
int main()
{
{
Foo foo;
// use foo
}
// more code
}
Run Code Online (Sandbox Code Playgroud)
但这样做应该是一个暗示,将foo放在一个完全独立的函数中可能会更好.
这里没有理由使用堆分配.那个解决方案会比问题更糟糕.
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |