在哪里分配一次使用类?

时间:2013-04-19 09:23:33

标签: 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
}

如果我只需要很短的时间foo,那么在执行其余代码之前将它分配到堆并删除是不是更好?

1 个答案:

答案 0 :(得分:11)

不,最好写一个内部范围

int main()
{
    {
        Foo foo;
        // use foo
    }
    // more code
}

但这样做应该暗示将foo放在一个完全独立的函数中可能会更好。

虽然没有理由在这里使用堆分配。那个解决方案会比问题更糟糕。