Главная » C++ энциклопедия » О » Оператор []
Категория: C++ энциклопедия » О
  • 0

25 янв 2012

Автор: admin

Оператор [] может быть перегружен, чтобы получать единственный аргумент произвольного типа и возвращать произвольный тип в качестве своего значения.
class String { 
private:
char* s ;
public:
String(char*);
char operator[](int n) const; // n-й символ
};
char String::operator[](int n)
{
// З десь должна выполняться проверка диапазона
return s [n];
}

Поскольку оператор [] может вызываться лишь с одним аргументом, для имитации многомерных массивов часто применяют анонимные экземпляры.
struct Index3 { 
int X, Y, Z;
Index3(int x, int y, int z) : X(x), Y(y), Z(z) {}
};
class Array3D { // Трехмерный массив объектов String
private:
// Н астоящая структура данных
public:
String& operator[](const Index3&);
};
String s = anArray[Index3(17, 29, 31)];

Хотя оператор [] вызывается лишь с одним аргументом, этот умеренно неуклюжий синтаксис позволяет создать произвольное количество псевдоаргументов.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.