首页 > 解决方案 > 在 C++ 中,你可以根据已经定义的其他变量来定义一个变量吗?

问题描述

例如,我可以根据我已经定义的变量“x”和“y”来定义一个变量“z”吗(是的,我知道这些是可怕的命名约定,但这是一个例子)。像这样:

int x = 0;
int y = 0;
int z = x * y;

你能做这样的事情并继续你的程序还是会收到错误消息?

标签: c++variables

解决方案


您可能对lambdas感兴趣:

int x = 0;
int y = 0;
auto z = [&x, &y](){ return x * y; };

此代码完全符合您的要求:调用该函数将始终为您提供与变量z()相乘的结果:xy

int v = z();
assert(v == x * y);

即使xy改变你总是会得到他们的乘法:

int x = 0;
int y = 0;
auto z = [&x, &y](){ return x * y; };
assert(z() == 0);
x = 1;
y = 2;
assert(z() == 2);

推荐阅读