Если я начал перегружать операторы в классе с помощью союзных функций, то нужно перегружать только союзными функциями или можно вперемешку союзные с членами класса? Я встретился с такой проблемой, что компилятор не видит перегрузку оператора, если делаю перегрузку с помощью союзных функций и членов класса.
Код(Смысла в коде нет,но просто хочу разобраться как это работает):
Этот код работает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);
}