运算符*不匹配
No match for operator *
HugeInt HugeInt:: operator*(int op2)const
{
return *this * HugeInt(op2)
;}
上面的代码应该是将一个对象乘以一个int。驱动程序中的示例是:HugeInt n7(5);拥抱n5;n5=n7*8;它没有运行代码,而是说*不匹配。已经尝试寻找其他解决方案,但都不起作用。函数声明处于公开状态。
您得到错误只是因为您没有定义operator*(HugeInt)
。您只为operator*(int)
定义了一个重载。
您需要注意您在C++中的类型。如果你分解你的语句,你会发现*this
的类型将是HugeInt
。然后在乘法运算的右手边,你有HugeInt(op2)
,它将是HugeInt
。然后,编译器将尝试在全局名称空间中查找operator*(HugeInt, HugeInt)
,或在类定义中查找operator*(HugeInt)
。我在这里要小心,因为如果你把乘法语句更正为return *this * op2;
,你可能会陷入一个无限循环。
相关文章:
- 在使用累加时,C++中的运算符+不匹配
- 我在 .h 中有一个枚举类,并且在.cpp错误中有一个运算符重载:与"运算符<<不匹配
- 为什么我收到错误:"运算符<<不匹配?
- 不显示匹配运算符
- 映射迭代器与运算符不匹配
- 与"运算符<<"C++不匹配
- 与"运算符>>"不匹配(操作数类型为"QDataStream"和"QJsonObject")
- 与标准中的"运算符<<"不匹配
- 运算符不匹配*=
- 不断收到错误" 与"运算符>>不匹配";
- 编译我的 3 个文件时,我收到错误,说"运算符="不匹配
- C++ 模板与运算符<不匹配
- 与"运算符="不匹配
- 代码块编译错误与运算符<<不匹配
- 错误:运算符 [] 不匹配。在比较列表中的 int 和 int 时<int>,
- 解决错误:运算符 [] 不匹配
- 错误:与"运算符>>"不匹配(操作数类型为"std::istream
- 与"运算符[]"不匹配(操作数类型为"std::unique_ptr<std::vector<int> >"和"int")
- 错误:与“运算符 []”不匹配
- C++ 设置:不匹配 - 运算符