Вы не можете напрямую перегружать оператор для решения этой проблемы, поскольку operator+
принимает только аргумент. Это невозможно:
void operator+(int idx, int num) // error: 2 parameters
{
a[idx] += num;
}
Один из способов решить эту проблему - использовать член currentIndex
и функцию установки. Например:
void setCurrentIndex(int idx)
{
currentIndex = idx;
}
void operator+(int el)
{
array12[currentIndex] += el;
}
//usage:
A a;
a.setCurrentIndex(0);
a + 1;
В качестве примечания, если вы определили operator[]
, вы можете напрямую добавить:
A a;
a[0] += 10;
Для этого потребуется дополнительный код, чтобы он работал, если основной тип - сложный.