当前位置:  开发笔记 > 编程语言 > 正文

我可以使用块来管理C++中的变量范围吗?

如何解决《我可以使用块来管理C++中的变量范围吗?》经验,为你挑选了2个好方法。

我试图在C++程序中节省一些内存,我想知道我是否可以使用块作为变量的范围(如Perl).假设我有一个巨大的对象执行一些计算并给出结果,这样做是否有意义:

InputType  input;
ResultType result;

{
    // Block of code
    MyHugeObject mho;
    result = mho.superHeavyProcessing();
}

/*
   My other code ...
*/

退出块时,我可以期望对象被销毁吗?



1> Mehrdad Afsh..:

是的你可以.

一旦变量超出范围,就会调用析构函数,它应该释放堆分配的内存.



2> Rick..:

是绝对的,除了节省内存之外,通常在调用析构函数时希望析构函数实际执行某些操作时调用析构函数的析构函数(请参阅RAII).例如,创建基于作用域的锁并以异常安全的方式轻松释放它,或者确定性地放弃对共享或宝贵资源(如文件句柄/数据库连接)的访问.

-Rick

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有