布尔标志重置
bool flag reset?
while(true){
bool flag;
while(true){
if (conditions) {
flag=true;
break;
}
}
}
在这种情况下,标志在退出内部 while 循环后是否重置为 false 条件?从控制台的显示来看,它仍然处于真实状态。
不,没有"重置"。没有任何魔法。事实上,flag
甚至不会被神奇地初始化为你false
,你必须自己做。
我想你正在考虑范围和阴影的经典例子:
int a = 4;
//a is 4 here
{
int a = 3;
//a is 3 here
}
//a is 4 here
但这里也没有魔法。有两个不同的变量a
碰巧共享一个名称。 内部块中的a
是指第二个整数。如果您可以引用第一个整数,您将读取一个完全不同的整数。
这里有一些魔力:
SomeClass x; //x's constructor is called
{
SomeOtherClass y; //y's constructor is called
} //y's destructor is called
由于y
是自动的,因此它会在其范围结束时被销毁。(顺便说一下,第二个a
也是如此,只是没有办法说。如果它有一个析构函数,它将被调用。如果它的析构函数做了一些花哨的事情,比如"重置一些标志",你会看到结果。(只是不能通过y
,这将消失。
{}
没有附加if/while/function/etc.这一事实是无关紧要的。
相关文章:
- 一个关于在C++中重载布尔运算符的问题
- 提升精神:解析布尔表达式并简化为规范范式
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 线程之间的布尔停止信号
- 布尔比较运算符是如何在C++中工作的
- 变量定义到C++布尔值转换
- 如何确保在使用基于布尔值的两个方法之一调用方法时避免分支预测错误
- 隐式常量/非常量运算符布尔
- 如何编写一个使用n倍三元条件语句的C++布尔函数
- do while 循环忽略我的布尔标志变量 C++
- 布尔标志与未签名的字符标志
- Python:我们应该如何编写一个函数来返回对象/列表和布尔标志
- 基于布尔标志有效地派生公共函数的两个版本
- 在命令行程序中使用布尔值。找不到定义标志并检查它们是否在参数中的方法
- 是否存在简单的指向布尔值作为线程取消标志的现实情况,无法有效地取消线程?
- 布尔标志应该始终是原子的
- 如何在无符号int上使用位标志,以便在其中存储额外的布尔值
- 为什么在成功将布尔字符串值转换为布尔值时,istringstream eof 标志没有变为真?
- 标准的原子布尔值和原子标志之间的区别
- 布尔标志重置