千家信息网

C++怎么压缩作用域

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"C++怎么压缩作用域",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++怎么压缩作用域"吧!ES.5: 尽量压缩作用域Reason(原因
千家信息网最后更新 2026年11月01日C++怎么压缩作用域

本篇内容主要讲解"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安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 天津市摩尔互联网科技 深圳九邦互联网科技有限公司 互联网科技财经 金融科技创新监管互联网金融 网络科技有限互联网 长亮科技 互联网金融 剑昆互联网络科技有限公司临桂 互联网科技与管理 互联网和黑科技的看法 广州市恰铎互联网科技有限公司 想开互联网科技公司怎么样 晋城互联网科技 徐州市互联网科技有限公司 恒生互联网科技业指数调整周期 元气玛特互联网科技公司是外包吗 半导体行业属于互联网高科技类吗 北京天晋互联网科技有限公司 承德科技产业互联网平台 优雇互联网科技有限公司 上海喔噻互联网科技有限公司 中国互联网科技工作委员会毛军 互联网 科技创业 北京禾田雨橡互联网科技 菲比寻常互联网科技 农村开互联网科技讲堂 厦门千工互联网科技有限公司 长沙茂晟互联网科技有限公司 上海京穆互联网科技有限公司 互联网科技接地气
0