C++ 条件变量的声明

示例

在forandwhile循环的条件下,还可以声明一个对象。在循环结束之前,该对象将一直处于作用域内,并将在循环的每次迭代中保持不变:

for (int i = 0; i < 5; ++i) {

    do_something(i);

}

// 我不再是范围。

for (auto& a : some_container) {

    a.do_something();

}

// a不再是范围。

while(std::shared_ptr<Object> p = get_object()) {

   p->do_something();

}

// p不再是范围。

但是,不允许do...while循环执行相同的操作。相反,请在循环之前声明变量,并(可选)将变量和循环都包含在本地作用域中,如果您希望变量在循环结束后超出作用域:

//这不编译

do {

    s = do_something();

} while (short s > 0);

// 好

short s;

do {

    s = do_something();

} while (s > 0);

这是因为循环的语句部分do...while(循环的主体)是在到达表达式部分(即while)之前求值的,因此,在循环的第一次迭代过程中,表达式中的任何声明都是不可见的。

以上是 C++ 条件变量的声明 的全部内容, 来源链接: utcz.com/z/330649.html

回到顶部