对象初始化不可依赖自身的值
6.7.2 ID_selfDependentInitialization
对象初始化依赖自身的值属于逻辑错误,也是常见的笔误。
示例:
void foo(int i) {
if (i > 0) {
int i = i + 1; // Non-compliant
....
}
}
例中局部变量 i 的初始化依赖自身的值,这种问题往往是错误地定义了与外层作用域中名称相同的对象。
应改为:
void foo(int i) {
if (i > 0) {
int j = i + 1; // OK
....
}
}