如何在c++中获取要更新的值
how to get values to update in c++
using namespace std;
int main()
{
int slotWild = 0;
int slotOne = 1 + slotWild;
int slotTwo = 1 + slotOne;
cout << slotWild << slotOne << slotTwo;
slotWild -= 1;
cout << slotWild << slotOne << slotTwo;
slotWild -= 1;
cout << slotWild << slotOne << slotTwo;
return 0;
}
我得到的输出是:
0 1 2
-1 1 2
-2 1 2
所以我的问题是,如果slotWild的值包含在slotOne和slotTwo的定义中,为什么其他值不更新?例如,您希望第2行和第3行的输出为:
-1 0 1
-2-10
这些不是"定义",它们是赋值。当你说x = y + 1
时,你说的是"将y
的值分配给x
,从现在开始加1"。
如果你想让它是动态的,你必须定义一个函数,如:
int slotOne() {
return 1 + slotWild;
}
其中要求slotWild
是类属性或全局变量。
这意味着你也需要称之为:
cout << slotWild << slotOne() << slotTwo();
函数每次调用时都会求值,而变量只初始化一次,在那之后,除非修改了变量,否则值不会改变。
正如Walnut所指出的,C++语句实际上是两部分:
int slotOne = 1 + slotWild;
^^^^^^^^^^^ ^^^^^^^^^^^^^
| - Variable Initialization
--- Variable Definition
初始化部分在定义该变量的那一刻发生,就像在执行该行代码时一样。
(与C++中的许多东西一样,情况并非总是如此,但作为一条一般规则,它就是这样工作的。(
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- QGraphicsPolygonItem在拖动时未更新QPolygonF坐标
- 如何获取std::result_of函数的返回类型
- 如何在openssl-ecc中获取十六进制格式的私钥
- 使用Unreal C++获取VR耳机的世界位置/方向
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 如何在c++中获取要更新的值
- 从更新查询获取'Cannot insert duplicate key'
- 如何获取从C++发送到Lua函数的表的更新值?
- 这个针对单个写入器 + 读取器的发布/检查更新类是否可以使用 memory_order_relaxed 或获取/发布以提
- 在某些范围更新后获取整数数组的最终状态的有效算法是什么?
- 超级强大的Android NDK:获取positionPercent以更新音频进度seekbar
- 给定一个微秒值,如何准确地得到一个时间值结构体?/*更新获取负值*/
- 获取和设置不更新对象
- 如何在更新语句中获取输出子句的结果
- 如何获取 IWebBrowser2 的更新说明?