@Lockdown6

Если я начал перегружать операторы в классе с помощью союзных функций,то нужно перегружать только союзными функциями?

Если я начал перегружать операторы в классе с помощью союзных функций, то нужно перегружать только союзными функциями или можно вперемешку союзные с членами класса? Я встретился с такой проблемой, что компилятор не видит перегрузку оператора, если делаю перегрузку с помощью союзных функций и членов класса.

Код(Смысла в коде нет,но просто хочу разобраться как это работает):
Этот код работает
Digit operator + (int ob, const Digit &ob1)
{
    return Digit(ob + ob1.dig);
}

Digit operator + (const Digit& ob1,int ob )
{
    return Digit(ob + ob1.dig);
}

Digit operator + (const Digit& ob, const Digit& ob1)
{
    return Digit(ob.dig + ob1.dig);
}


Этот код не работает
Digit operator + (int ob, const Digit &ob1)
{
    return Digit(ob + ob1.dig);
}

Digit operator + (const Digit& ob1,int ob )
{
    return Digit(ob + ob1.dig);
}

//Член класса
Digit Digit:operator + (const Digit& ob)
{
    return Digit(ob.dig + this->dig);
}
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы