关于在函数中定义cin的有关问题

关于在函数中定义cin的问题
各位大神们,本人最近在弄一个程序是出了个问题,问题如下:
//===========================
class TMP
{
    public:
       int a;
}b;

void set_val(TMP t)
{
    cin>>t.a
}

int main()
{
    set_val(t);
    return 0;
}
//============================

编译不通过,set_val()函数出了问题,问题究竟是啥哈,我要是想定义一个带cin的这样的函数,我应该怎么办呢~

求指导~~~~
cin 函数

------解决方案--------------------
#include <iostream>
using namespace std;
class TMP
{
public:
    TMP(){}
public:
    int a;
}b;

void set_val(TMP t)
{
    cin>>t.a;
}

int main()
{
    TMP t;
    set_val(t);
    return 0;
}