C++怎么压缩作用域
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,本篇内容主要讲解"C++怎么压缩作用域",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++怎么压缩作用域"吧!ES.5: 尽量压缩作用域Reason(原因
千家信息网最后更新 2025年02月02日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安全错误
数据库的锁怎样保障安全
网络安全不断提升
win7远程桌面服务器
国家建立网络安全机制
常熟原则软件开发推荐咨询
网络安全手工注入和自动注入
福建飞沃网络技术有限公司
dnf日本服务器在哪里下载
计算机服务器管理器怎么打开
网络安全宣传活动评价
北京crm软件开发流程
燕郊软件开发培训
ios14邮件未从服务器下载
酒店网络技术架构
易搜网络技术有限公司
数据库与程序的安装
新乡精益诚网络技术有限公司
海淀区专业网络技术价格行情
qq三国代理服务器
广州善淳网络技术有限公司
互联网金融发展的科技自立
怎么安装ftp服务器
tbc哪个服务器最多
网络安全手工注入和自动注入
win7装2008数据库
哈尔滨短信软件开发公司
2台服务器的集群搭建
浦发银行基金软件开发部门
法国高防服务器
西青区新时代软件开发装饰
aws多区域数据库