由于此错误,我试图重载+运算符:
tools.cpp(147):错误C2679:二进制'+':找不到哪个运算符 采用'CSchemaString'类型的右手操作数(或者没有 可接受的转换)
代码是:
// I TRIED THIS TO OVERLOAD + OPERATOR
CSchemaString operator +(const CVisuComm& CVisuComm::TabCCUImess,
const CSchemaString& GetPriority);
//THE CODE AT WHICH THE ERROR IS RETURNED,
//error C2679: binary '+' : no operator found which takes
//a right-hand operand of type
//'CSchemaString' (or there is no acceptable conversion)
CVisuComm::TabCCUImess[CVisuComm::nbCCUImess++]=
"RECONFIGURATION SOLUTION N° " +config.GetPriority();
//THE VARIOUS TYPES ARE
//CVisuComm-------class CVisuComm
//TabCCUImess-----static CString
//nbCCUImess------static int nbCCUImess
//config----------CConfig_State_ChangeType
//GetPriority-----CSchemaString
但它与
一起抛出相同的错误错误C2751:'CVisuComm :: TabCCUImess':函数的名称 参数不合格
因此,请建议正确的方法来重载操作员。任何帮助表示赞赏。
答案 0 :(得分:0)
第二条错误消息为您提供了线索:the name of a function parameter cannot be qualified
您的第一个参数名称应该只是一个名称。目前,它具有类名称。
而不是:const CVisuComm& CVisuComm::TabCCUImess
也许应该是:const CVisuComm& Comm