c++ - 在 C++ 中,你可以根据已经定义的其他变量来定义一个变量吗?
问题描述
例如,我可以根据我已经定义的变量“x”和“y”来定义一个变量“z”吗(是的,我知道这些是可怕的命名约定,但这是一个例子)。像这样:
int x = 0;
int y = 0;
int z = x * y;
你能做这样的事情并继续你的程序还是会收到错误消息?
解决方案
您可能对lambdas感兴趣:
int x = 0;
int y = 0;
auto z = [&x, &y](){ return x * y; };
此代码完全符合您的要求:调用该函数将始终为您提供与变量z()
相乘的结果:x
y
int v = z();
assert(v == x * y);
即使x
或y
改变你总是会得到他们的乘法:
int x = 0;
int y = 0;
auto z = [&x, &y](){ return x * y; };
assert(z() == 0);
x = 1;
y = 2;
assert(z() == 2);
推荐阅读
- php - PHPMailer 意外开始发送垃圾邮件
- excel - 使用不同列但相同行中的文本更改多列中公式中的相同文本并在多行中重复此操作
- flutter - 出现错误“在 null 上调用了方法 '>'”
- firebase - React Native - 将图像上传到 Firebase 存储
- python - 如何在python中循环多个目录
- python - 如何使用 python datetime 确定给定日期 2017-08-23 之前的一年?
- rust - 当对象添加到向量时,Rust wasm_bindgen 对象在 JS 端变为 null
- python - 使用 anaconda 安装包
- ctypes - 使用带有 windows dll 函数的 ctypes 键入错误
- java - Flutter Image_picker 问题 Android studio