Проблема, с которой вы столкнулись, заключается в том, что вы возвращаете значение из add
и переносите аргумент в operator=
по неконстантной ссылке.
Временный объект, возвращаемый из add
, является значением r, поэтому его нельзя привязать к неконстантной ссылке.
Если вы не делаете что-то очень странное, вы, вероятно, захотите изменить operator=
на аргумент, ссылаясь на const:
HUGE_INT& HUGE_INT::operator=(HUGE_INT const& orig)
{
//code
return *this;
}
(Я также изменил его для возврата по ссылке, так как это стандартная подпись для operator=
.)