tun*_*nuz 5 c++ object scoping
我试图在C++程序中节省一些内存,我想知道我是否可以使用块作为变量的范围(如Perl).假设我有一个巨大的对象执行一些计算并给出结果,这样做是否有意义:
InputType input;
ResultType result;
{
// Block of code
MyHugeObject mho;
result = mho.superHeavyProcessing();
}
/*
My other code ...
*/
Run Code Online (Sandbox Code Playgroud)
退出块时,我可以期望对象被销毁吗?
Ric*_*ick 18
是绝对的,除了节省内存之外,通常在调用析构函数时希望析构函数实际执行某些操作时调用析构函数的析构函数(请参阅RAII).例如,创建基于作用域的锁并以异常安全的方式轻松释放它,或者确定性地放弃对共享或宝贵资源(如文件句柄/数据库连接)的访问.
-Rick
归档时间: |
|
查看次数: |
799 次 |
最近记录: |