inaccessible method
HugeInt HugeInt:: operator*(int op2)const
{
;
return *this * HugeInt(op2)
上面的代码应该将对象乘以int。 驱动程序中的示例:HugeInt n7(5); HugeInt n5; n5 = n7 * 8; 而不是运行代码,它表示*不匹配。已经尝试寻找其他解决方案但没有一个会起作用。功能声明已公开。
答案 0 :(得分:2)
您收到错误只是因为您尚未定义operator*(HugeInt)
。您只为operator*(int)
定义了一个重载。
您需要注意C ++中的类型。如果您要细分您的陈述,您会发现*this
的类型将是HugeInt
。然后在乘法运算的右侧,HugeInt(op2)
为HugeInt
。然后,编译器将尝试在全局命名空间中查找operator*(HugeInt, HugeInt)
,或在类定义中查找operator*(HugeInt)
。我在这里要小心,因为如果你将乘法语句更正为return *this * op2;
,你可能最终会陷入无限循环。