C++怎么压缩作用域
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"C++怎么压缩作用域",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++怎么压缩作用域"吧!ES.5: 尽量压缩作用域Reason(原因
千家信息网最后更新 2026年11月01日C++怎么压缩作用域Example, bad(反面示例)
本篇内容主要讲解"C++怎么压缩作用域",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++怎么压缩作用域"吧!
ES.5: 尽量压缩作用域
Reason(原因)
可读性。最小化资源的保持时间。避免变量的误用。
换个说法:不要没有必要扩大名称的作用域。
Example(示例)
void use()
{
int i; // bad: i is needlessly accessible after loop
for (i = 0; i < 20; ++i) { /* ... */ }
// no intended use of i here
for (int i = 0; i < 20; ++i) { /* ... */ } // good: i is local to for-loop
if (auto pc = dynamic_cast(ps)) { // good: pc is local to if-statement
// ... deal with Circle ...
}
else {
// ... handle error ...
}
}
Example, bad(反面示例)
void use(const string& name)
{
string fn = name + ".txt";
ifstream is {fn};
Record r;
is >> r;
// ... 200 lines of code without intended use of fn or is ...
}
这个函数用任何标准衡量都太长了,但是要点在于fn使用的资源和is管理的文件被维持的时间远远超过需要,有可能在函数接下来的部分is和fn会被意外使用。这种情况下,分解出一个read函数可能是一个好主意。
Record load_record(const string& name)
{
string fn = name + ".txt";
ifstream is {fn};
Record r;
is >> r;
return r;
}
void use(const string& name)
{
Record r = load_record(name);
// ... 200 lines of code ...
}Enforcement(实施建议)
Flag loop variable declared outside a loop and not used after the loop
标记在循环外定义循环变量并且循环之后不再使用的情况。
Flag when expensive resources, such as file handles and locks are not used for N-lines (for some suitable N)
标记高价值资源(例如文件句柄和锁)在N行(适当值)之内没有使用的情况。
到此,相信大家对"C++怎么压缩作用域"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
作用
C++
函数
情况
资源
循环
内容
变量
文件
时间
标记
示例
学习
实用
更深
最小
适当
必要
意外
接下来
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
山东特亿宝互联网科技有限公司
互联网佳科技有限公司
西安纸贵互联网科技有限公司
互联网科技工作委员会毛军
鸠鸠互联网科技
互联网公司 科技公司
深圳科技互联网
互联网科技公司怎么样
顺玮阁互联网科技
开启互联网科技时代小说
小米互联网科技园设置
字节跳动和互联网科技
内蒙古九一互联网科技
互联网相关科技技术
玉溪新华互联网科技怎么选
盐城市攀科互联网科技有限公司
互联网科技创新创业项目
数字科技和互联网金融哪个好
互联网科技创业有什么好项目
株洲百竞科技的互联网营销顾问
天津市摩尔互联网科技
苏州大垚互联网科技
大白互联网科技
互联网之后的科技是什么
港股科技和互联网
智腾互联网科技有限公司
中科明德北京互联网科技
陕西云淼互联网科技公司
互联网科技机房
北京瑞云互联网科技有限公司