C++通过引用将一个变量绑定到另外两个变量

aww*_*smm 5 c++ variables reference

在C++中,我们可以通过引用定义变量,如:

int foo = 3;
int &bar = foo;
Run Code Online (Sandbox Code Playgroud)

然后,以下代码

cout << foo << " " << bar;
Run Code Online (Sandbox Code Playgroud)

将打印

3 3
Run Code Online (Sandbox Code Playgroud)

因为bar的"值"通过引用(&)与foo的值相关联.我想知道,有没有办法将"bar"的值与两个变量联系起来?说我有三个变量:geddy,neil和alex,我希望neil总是等于alex + geddy.有没有办法写两样的东西:

int alex = 4;
int geddy = 5;
int &neil = alex + geddy;
Run Code Online (Sandbox Code Playgroud)

尼尔会回归9吗?然后,如果我将alex更改为7,neil将返回12?

Bil*_*nch 6

不,不是真的.你可以创建一个函数或函子:

int alex = 4;
int geddy = 5;

auto neil = [&]() { return alex + geddy; };
std::cout << neil() << "\n";
Run Code Online (Sandbox Code Playgroud)

  • @AndrewWatson:你可以将`()`调用自动化为类类型对象的转换运算符,这样你就可以获得你想要的符号.但是暗示事情往往是一种Ungood Idea™,特别是当它没有消除冗长时.在`std :: cout << neil()<<"\n"中,读者可以看到这是做什么的,有一个函数调用,但在`std :: cout << neil <<"\n"`电话不明显.也就是说,听起来好像你真的想要*电子表格*功能,而不是C++程序.电子表格可以是解决实际问题的良好*临时*解决方案. (2认同)