这个调用函数属于什么怪有关问题,请大家帮小弟我解释一下

这个调用函数属于什么怪问题,请大家帮我解释一下
C/C++ code

#include<iostream>
#include<vector>
using namespace std;
bool que(vector<int>::iterator beg,vector<int>::iterator end,int val)
{
    while(beg!=end)
    {
        if((*beg++)==val)return 1;
    }
    return 0;
}
int main()
{
    int val;
    vector<int> vec;
    cout<<"输入数据到容器"<<endl;
    while(cin>>val)
    {
        vec.push_back(val);
    }
    cin.clear();
    int que;
    cout<<"输入要查找的数字"<<endl;
    cin>>que;
    vector<int>::iterator beg=vec.begin();
    vector<int>::iterator end=vec.end();
    

    if(que(beg,end,que))cout<<"找到了数字"<<endl;
    else cout<<"没有找到起"<<endl;
}



编译通不过 出现error C2064: term does not evaluate to a function

C/C++ code
#include<iostream>
#include<vector>
using namespace std;
bool que(vector<int>::iterator beg,vector<int>::iterator end,int val)
{
    while(beg!=end)
    {
        if((*beg++)==val)return 1;
    }
    return 0;
}
int main()
{
    int val;
    vector<int> vec;
    cout<<"输入数据到容器"<<endl;
    while(cin>>val)
    {
        vec.push_back(val);
    }
    cin.clear();
    int que;
    cout<<"输入要查找的数字"<<endl;
    cin>>que;
    vector<int>::iterator beg=vec.begin();
    vector<int>::iterator end=vec.end();
    

    if(::que(beg,end,que))cout<<"找到了数字"<<endl;
    else cout<<"没有找到起"<<endl;
}


改成这样就OK了 ,请问一下这个是什么原因啊??

------解决方案--------------------
变量和函数用同样的名字???
没试过!