0
Есть ли способ перегрузить оператор индексирования массива в C++, отличный от класса? Я хотел бы назвать пользовательскую функцию при чтении/записи в массиве.Оператор индекса перегрузки массива
Например:
int* array = new int[10];
array[0] = 5;
При записи в массиве [0], я хотел бы назвать свою собственную функцию. Я знаю, что это можно сделать внутри класса, перегружая оператор [] (например, класс SafeArray).
Спасибо.
нет, так как это просто разлагается до установки указателя, а не вызов Вероятно функции. – matsjoyce
Вы не можете перегружать так называемое разыменование указателя ('array [0]' эквивалентно '* (array + 0)'). –
Нет, вы не можете. В качестве простого правила все пользовательские операторы должны принимать по крайней мере один параметр определенного пользователем типа (включая скрытую 'this' для функции-члена). –