最近我遇到了以下部分代码.我不知道它是否有任何意义,我只是想了解它:
#include <iostream>
class foo{
private:
int memeber;
public:
int &method(){ return memeber; }
};
int main(){
foo bar;
std::cin >> bar.method();
}
Run Code Online (Sandbox Code Playgroud)
我以前从未见过这样的事.我很惊讶它甚至编译.你怎么能直接找到一个函数地址?有人可以详细说明它的作用以及它是否可以用于任何事情?
这段代码:
std::cin >> bar.method();
Run Code Online (Sandbox Code Playgroud)
可以重写更详细:
int &ref = bar.method();
std::cin >> ref;
Run Code Online (Sandbox Code Playgroud)
所以调用method()引用的结果int是传递给std::cin.operator>>()