让我们考虑以下代码:
void main(int argc, char* argv[])
{
Foo foo;
//at this point I don't need foo any more
//a lot of stuff here
}
如果我只需要很短的时间foo
,那么在执行其余代码之前将它分配到堆并删除是不是更好?
答案 0 :(得分:11)
不,最好写一个内部范围。
int main()
{
{
Foo foo;
// use foo
}
// more code
}
但这样做应该暗示将foo放在一个完全独立的函数中可能会更好。
虽然没有理由在这里使用堆分配。那个解决方案会比问题更糟糕。