Возвращенный тип оператора назначения копирования: list <int> &
list <int> & operator = (WholeNumber & rhs)
{
this->digits = rhs.digits;
return *this;
}
, но возвращается объект типа WholeNumber
(*this
), и неявное преобразование из одного типа вдругое.
Возможно, вы имеете в виду следующее
WholeNumber & operator = ( const WholeNumber & rhs )
{
this->digits = rhs.digits;
return *this;
}
Также эти операторы
friend ostream & operator << (ostream & out, const list <int> * l);
istream & operator >> (istream & in);
недопустимы. Например, первый оператор должен быть объявлен как
friend ostream & operator << (ostream & out, const WholeNumber & );
И второй оператор также должен быть функцией-другом, например
friend istream & operator >> ( istream & in, WholeNumber & );