Оператор индекса в C++
У массива квадратные скобки читают и меняют элемент. В классе ту же запись дает оператор индекса: он принимает целый индекс и возвращает ссылку на элемент внутреннего массива, чтобы его можно было и читать, и перезаписывать.
Запишем класс Triplet с тремя целыми внутри:
class Triplet {
public:
int data[3] = {1, 2, 3};
int& operator[](int index) {
return data[index];
}
};
Сейчас создадим объект и обратимся к элементу по индексу:
int main() {
Triplet row;
std::cout << row[1] << "\n";
row[1] = 9;
std::cout << row[1] << "\n";
return 0;
}
Сделайте класс Lane с массивом из трех
целых cells. Реализуйте доступ через
[ ]. Выведите второй элемент набора
1, 2, 3, замените его
на 9 и снова выведите.
Для Lane с тремя нулями запишите в нулевой
элемент 5 и выведите его.