С++ - язык, который изучается постепенно. Множественные перегрузки оператора []


Материалы книги получены с http://www.itlibitum.ru/

Множественные перегрузки оператора []

Оператор [] может иметь и несколько вариантов перегрузки для данного класса при условии, что сигнатуры остаются уникальными. Например, одна версия может получать аргумент типа int, а другая - аргумент char*, который преобразуется к int функцией atoi(). Скорее всего, ваша коллекция может индексироваться несколькими способами.

class StringArray {

public:

const String& operator[](int index);

int operator[](const String&);

};

String str = array[17]; // Первая форма

int index = array[String("Hello")]; // Вторая форма

Первый оператор [] реализует семантику массива: по целому индексу возвращается значение элемента с этим индексом. Второй оператор обеспечивает обратную возможность: по значению находится соответствующий индекс массива. В этой схеме используется пара допущений (например, уникальное целое, которое возвращается в качестве индекса несуществующего значения), но в целом идея вполне понятна.


Назад    Содержание    Далее    

Copyright 2005. Климов Александр. All Right Reserved.
Сайт создан в системе uCoz