C++ Перегрузка оператора индекса []

Перегрузка операторов и перегрузка функций в C++

Оператор индексации [] обычно используется для доступа к элементам массива. Перегрузка этого оператора служит для расширения функциональности работы с массивами C++.

В следующем примере показано, как перегрузить оператор индексации [].

Пример

#include <iostream> using namespace std; const int SIZE = 10; class safearay { private: int arr[SIZE]; public: safearay() { register int i; for(i = 0; i < SIZE; i++) { arr[i] = i; } } int& operator[](int i) { if( i >= SIZE ) { cout << "Индекс превышает максимальное значение" <<endl; // Возвращаем первый элемент return arr[0]; } return arr[i]; } }; int main() { safearay A; cout << "Значение A[2] равно:" << A[2] <<endl; cout << "Значение A[5] равно:" << A[5]<<endl; cout << "Значение A[12] равно:" << A[12]<<endl; return 0; }

Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:

$ g++ -o test test.cpp
$ ./test 
A[2] 的值为 : 2
A[5] 的值为 : 5
A[12] 的值为 : 索引超过最大值
0

Перегрузка операторов и перегрузка функций в C++

Другие расширения