如何在c++中获取要更新的值

how to get values to update in c++

本文关键字:更新 获取 c++      更新时间:2023-10-16

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++中的许多东西一样,情况并非总是如此,但作为一条一般规则,它就是这样工作的。(