错误C2064:term的求值结果不接受带有1个参数的函数

问题描述

|| 当我尝试以下程序时,它给了我:error C2064:我在google中尝试过,但找不到确切的原因。请帮忙。
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;
};
    

解决方法

        您是否想像函数一样调用
myClass
类型的对象?为此,您需要使
operator()
重载:
void operator()(myClass dTemp){
  // ...
}
如果您想调用该函数,那么实际上应该这样做:
myClassTemp.function(myClassTemp1);
    ,        调用时应包括函数名称。
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;
};
    ,        这应该是
//          vvvvvvvv
myClassTemp.function(myClassTemp1);
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...