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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перегрузка оператора [] 
:(
    Опции темы
cerf_machine
Дата 7.8.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте!

Код

int &opearor [](int);

Перегружает оператор [] в том смысле, что можно использовать
Код

int qwerty=object[789]=132;


А реально ли перегрузить его таким образом, чтобы использовать аля-ПХП:
Код

object[]=321;

Чтобы например реализовать добавление очередного элемента в массив?

Благодарю.
PM MAIL ICQ   Вверх
Ln78
Дата 7.8.2007, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 15



cerf_machine, а для тебя принципиально, чтобы в скобках ничего не стояло? Если не сильно, можно использовать обычный
Код

 int &opearor [](int); 

только анализировать, если значение индекса, например, равно -1 (или просто меньше нуля), то выделять при необходимости память (зависит от реализации операций управления памятью) или считать выделенной уже зарезервированную.

Добавлено @ 15:44
Хотя это, конечно, на любителя. ИМХО, понятнее и красивее для этого использовать имя push_back

Это сообщение отредактировал(а) Ln78 - 7.8.2007, 15:45
PM MAIL   Вверх
Ln78
Дата 7.8.2007, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 15



Опять же на любителя, если хочется со скобками, а писать индекс не хочется, можно использовать другие скобки
Код

  int& operator()(void)

PM MAIL   Вверх
cerf_machine
Дата 7.8.2007, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хм... Отвечу вопросом. Стал бы я спрашивать, как делается что-либо, если мне вообще по барабану до этого?

Естественно хотелось бы поиметь пустой "[]". Так то мне ничто не мешает использовать и без того существующий метод Insert().
PM MAIL ICQ   Вверх
Daevaorn
Дата 7.8.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(cerf_machine @  7.8.2007,  17:03 Найти цитируемый пост)
Естественно хотелось бы поиметь пустой "[]"

нельзя. и смысла мало. функциональной сути никокой это не несет. только услада для глаз и то спорная.
PM MAIL WWW   Вверх
cerf_machine
Дата 7.8.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ln78, спасибо, перегружать круглые скобки точно не стоитsmile)
PM MAIL ICQ   Вверх
Ln78
Дата 8.8.2007, 06:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 15



Цитата(cerf_machine @  7.8.2007,  16:03 Найти цитируемый пост)
Отвечу вопросом. Стал бы я спрашивать, как делается что-либо

Отвечаю на вопрос. Я предполагал, что спрашивающий, по крайней мере, именно ту конструкцию попытался оттранслировать и прочитал соответствующие диагностические сообщения компилятора. И только после этого задал вопрос, можно ли сделать нечто подобное. Обычно так и происходит.
PM MAIL   Вверх
cerf_machine
Дата 8.8.2007, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



2Ln78, Конечно я попытался это сделать всевозможными ухищрениями, на что компилер говорил "нет" (точных его слов уже не припомню)...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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