为什么';t';所有#u成员';将1添加到“man”后的变量更改? 我刚开始编程,我从C++开始。我在学习变量,并且在练习

为什么';t';所有#u成员';将1添加到“man”后的变量更改? 我刚开始编程,我从C++开始。我在学习变量,并且在练习,c++,C++,我将两个变量加在一起,然后将1添加到其中一个(man)。 在那之后,我想展示它们被添加到一起(所有的\u成员) 但是它在我包含的+1中不算。我怎样才能解决这个问题 #include <iostream> using namespace std; int main() { int man = 2; int women = 1; int all_members = man + women; cout << "the number

我将两个变量加在一起,然后将1添加到其中一个(
man
)。 在那之后,我想展示它们被添加到一起(
所有的\u成员

但是它在我包含的
+1
中不算。我怎样才能解决这个问题

#include <iostream>
using namespace std;

int main() {

    int man = 2;
    int women = 1;
    int all_members = man + women;

    cout << "the number of men in this house is: " << man << flush;
    cout << " and the number of women in this house is: " << women << endl;

    cout << "new baby boy!" << endl;

    man = man + 1;

    cout << "now the number of humans present in this house is: " << all_members << endl;

    return 0;
}

<>我不知道C++,但我想你必须更新<代码> ALLYMARS < /CARD>变量.< /P> < P>我不知道C++,但是我想你必须更新<代码> AlxMys[/Cuff.Value.< /P> < P>这行:

int all_members = man + women;
使用执行此代码时
man
woman
的值,初始化
所有\u成员
。如果在以后的某个时刻,您更改了
man
woman
的值,这对
所有成员的值都没有影响。如果希望更改该值,则需要再次更新该变量


解决此问题的一种方法是将
所有\u成员
制作成如下lambda:

auto all_members = [&] { return man + women; };
由于lambda通过引用捕获
man
woman
,因此对这些变量的任何更改都将反映在此lambda的调用中

请注意,
all_成员
不再是
int
,而是返回
int
的类型。因此,不只是说
all\u members
,而是说
all\u members()
来检索值

这是一个。

这行:

int all_members = man + women;
使用执行此代码时
man
woman
的值,初始化
所有\u成员
。如果在以后的某个时刻,您更改了
man
woman
的值,这对
所有成员的值都没有影响。如果希望更改该值,则需要再次更新该变量


解决此问题的一种方法是将
所有\u成员
制作成如下lambda:

auto all_members = [&] { return man + women; };
由于lambda通过引用捕获
man
woman
,因此对这些变量的任何更改都将反映在此lambda的调用中

请注意,
all_成员
不再是
int
,而是返回
int
的类型。因此,不只是说
all\u members
,而是说
all\u members()
来检索值


这是一个。

绝对是某物的复制品。为了回答您的问题,对原语(如整数)的赋值是一件一劳永逸的事情,除非您为它们赋值新的内容,否则原语不会改变。然而,这应该关闭,因为已经有很多问题像它一样被问到了。@micpap25你是对的,这几乎肯定是一个骗局。但是,在有人找到正确的目标之前,它无法关闭。请搜索一个,如果你找到了,请继续投票关闭。绝对是一个重复的东西。为了回答您的问题,对原语(如整数)的赋值是一件一劳永逸的事情,除非您为它们赋值新的内容,否则原语不会改变。然而,这应该关闭,因为已经有很多问题像它一样被问到了。@micpap25你是对的,这几乎肯定是一个骗局。但是,在有人找到正确的目标之前,它无法关闭。请你去搜索一个,如果你找到了,就去投票,我不知道C++有多少,但是这是正确的:“Cigiin我从来没有学过C++,但是它有点像java,所以我得到了答案。这很好:)公平的警告,我建议你在猜到解决方案时要小心地发布C++答案。如果你搞错了,你很可能会得到很多的下注:“我不知道C++有多少,但这是正确的:”Cigiin我从未学过C++,但它有点像java,所以我得到了答案。这很好:)公平的警告,我建议你在猜到答案时要小心地发布C++答案。如果你搞错了,你很可能会很快得到很多反对票:)或者在main()的末尾附近插入
sleep(15552000)
-当进程重新启动时,可能所有成员的值都与现实相符:)或者在main()的末尾附近插入
sleep(15552000)
-当流程重新启动时,所有_成员的价值可能与现实相符:)