错误C2064:term不评估为采用1参数的函数

时间:2011-06-12 08:41:34

标签: c++

当我尝试下面的程序时,它给了我:错误C2064:我在谷歌尝试但无法找到确切的原因。请帮忙。

class myClass 
{
    public:
        void function(myClass dTemp)
        {
            cout<<"Inside myClass: taking myClass parameter"<<endl;
        }
};

int main()
{

    myClass myClassTemp;
    myClass myClassTemp1;

    myClassTemp(myClassTemp1);// error C2064: term does not evaluate to a function taking 1 argument.

return 0;
};

3 个答案:

答案 0 :(得分:5)

您应该在致电时提供您的功能名称。

myClassTemp.function(myClassTemp1)

或者如果您的意图是仿函数对象,请按照以下方式执行:

class myClass 
{
    public:
        void operator() (myClass dTemp)
        {
            cout<<"Inside myClass: taking myClass parameter"<<endl;
        }
};

. 
int main()
{

    myClass myClassTemp;
    myClass myClassTemp1;

    myClassTemp(myClassTemp1);

return 0;
};

答案 1 :(得分:5)

你的意思是能够像函数一样调用myClass类型的对象吗?您需要重载operator()

void operator()(myClass dTemp){
  // ...
}

如果您想要调用该函数,那么您应该这样做:

myClassTemp.function(myClassTemp1);

答案 2 :(得分:3)

这应该是

//          vvvvvvvv
myClassTemp.function(myClassTemp1);