Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
ttf32
Зарегистрирован: 05.05.2003 Сообщения: 2
|
Добавлено: Пн Май 05 2003 12:36 Заголовок сообщения: Переопределение операции индексирования |
|
|
Народ, подскажите, кто знает, как организовать доступ к элементам двумерного массива через переопределение операции индексирования. Надо создать обьект по поведению, с точки зрения остальной программы, походящий на двумерный массив. (случай разреженного массива) |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Пн Май 05 2003 17:46 Заголовок сообщения: По стандарту C++ функция operator[]() принимает только один аргумент, также как другие операторные функции принимают столько ар |
|
|
поэтому определи и используй вместо индексного обозначения "имя_массива[i, j]" функцию -- "имя_массива_индекс(i, j)".
PS. Можно еще переписать компилятор |
|
Вернуться к началу |
|
|
Борис Гость
|
Добавлено: Пн Май 05 2003 18:13 Заголовок сообщения: Конечно, я имел ввиду, что один аргумент для переопределения, в действительности она принимает два аргумента -- адрес и индекс, |
|
|
- |
|
Вернуться к началу |
|
|
ugz Гость
|
Добавлено: Пн Май 05 2003 20:02 Заголовок сообщения: Можно сделать и через вспомогательный класс. (+) |
|
|
Что-то типа:
class array { ...
class row { ...
int operator [] (int index);
... };
row operator [] (int index); ...
};
и array a; a[y][x]; - будет работать. |
|
Вернуться к началу |
|
|
ttf32
Зарегистрирован: 05.05.2003 Сообщения: 2
|
Добавлено: Вт Май 06 2003 17:56 Заголовок сообщения: Re: Можно сделать и через вспомогательный класс. (+) |
|
|
Спасибо, о вспомогательном классе я не подумал... |
|
Вернуться к началу |
|
|
|