Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> float operator[][][](float,float,float), перегрузка многих квадратных 
:(
    Опции темы
Dr.Wisdom
Дата 7.10.2005, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 6.1.2005

Репутация: нет
Всего: 0



Че мне перегружать чтобы обращаться как к трехмерному массиву?

float operator[][][](float,float,float) - то что призодит в голову.
--------------------
VIVA LA RESISTANCE
PM MAIL   Вверх
maxim1000
Дата 7.10.2005, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



чтобы была возможна такая запись можно сделать так:
CSomeClass &operator[](float);
а в CSomeClass:
CAnotherClass &operator[](float);
а в CAnotherClass:
float operator[](float)
smile
Добавлено @ 18:27
P.S. сам не пробовал smile


--------------------
qqq
PM WWW   Вверх
Дрон
Дата 7.10.2005, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 10
Всего: 93



maxim1000
Прав.

В Си существуют только одномерные массивы.


--------------------
Да. Именно так.
PM   Вверх
Mayk
Дата 7.10.2005, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Элджер по-моему предлагает в качестве альтернативы использовать
operator[] (Index3 idx)
где Index3 -
Код

struct Index3{
 int a,b,c;
};

соответственно и используется для индексации.


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
maxim1000
Дата 7.10.2005, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



Цитата
operator[] (Index3 idx)

так неинтересно...
придется писать
qqq[Index3(0,1,2)]
и то, если конструктор написать...
кстати, по-моему, можно перегрузить () на несколько аргументов
а []? (так чтобы их через запятую писать...)


--------------------
qqq
PM WWW   Вверх
Mayk
Дата 7.10.2005, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Цитата(maxim1000 @ 8.10.2005, 00:41)
а []? (так чтобы их через запятую писать...)

АФАИР нельзя. Сработает operator,. То есть
myvector[3,4] преобразуется myvector[4]
Добавлено @ 21:09
кстати. Можно перегрузить operator, чтоб он возвращал объект типа Index smile Хотя лучше не нужно smile

Это сообщение отредактировал(а) Mayk - 7.10.2005, 21:09


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
maxim1000
Дата 7.10.2005, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



Цитата
кстати. Можно перегрузить operator, чтоб он возвращал объект типа Index

для этого хотя бы один из аргументов должен быть "нашего" типа...
просто для int'ов, по-моему не получится...


--------------------
qqq
PM WWW   Вверх
Earnest
Дата 8.10.2005, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Оператор [] действительно нельзя нагрузить больше чем одним аргументом, зато оператор () можно.
И пишите себе Massiv(3,5,10) на здоровье. По-моему, это гораздо удобнее, чем Massiv[3][5][10].


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0485 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.