std :: cin直接到一个函数

Tom*_*zyk 1 c++

最近我遇到了以下部分代码.我不知道它是否有任何意义,我只是想了解它:

#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)

我以前从未见过这样的事.我很惊讶它甚至编译.你怎么能直接找到一个函数地址?有人可以详细说明它的作用以及它是否可以用于任何事情?

Sla*_*ica 5

这段代码:

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>>()