当我尝试下面的程序时,它给了我:错误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;
};
答案 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);