|
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
|
|
Перегрузка операторов -> <-31.01.2013, 03:31. Показов 974. Ответов 8
Метки нет (Все метки)
Здравствуйте в столь позднее время..
Какова особеность перегрузки операторов -> и . ? Что возвращают ? Если можно ссылки на стандарт...Заранее спасибо.
0
|
|
| 31.01.2013, 03:31 | |
|
Ответы с готовыми решениями:
8
Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this Перегрузка операторов Перегрузка операторов |
|
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
|
|
| 31.01.2013, 04:23 [ТС] | |
|
Что должен оператор -> возвращать?
0
|
|
|
Неэпический
|
||||||
| 31.01.2013, 04:52 | ||||||
|
просто для примера:
0
|
||||||
|
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
|
|
| 31.01.2013, 12:28 [ТС] | |
|
Спасибо, пример хороший. Но меня интересует каким образом оператор -> возвращая указатель, без других операторов работает с х, у. Логичней было бы * ( px.operator->() ) . x или px.operator->()->x, но достаточно одного ->. Как?
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||||||
| 31.01.2013, 13:02 | ||||||
|
Dr.Urban, у оператора -> особая семантика. При его вызове он применяется рекурсивно к результату предыдущего вызова до тех пор, пока не найдёт нужный член в очередном объекте-результате. Пример:
2
|
||||||
|
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
|
|
| 31.01.2013, 13:12 [ТС] | |
|
Идея мне нравиться и пример работает, но остался 1 вопрос.
Почему сигнатуры операторов разные? Value *operator->() // возврат указателя Foo operator->() // возврат по значению Bar operator->() // возврат по значению Выглядит как магия =)
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 31.01.2013, 13:18 | |
|
Dr.Urban, смотрите. В Bar перегружен оператор ->. Значит оператор -> в Moo должен возвратить Bar (чтобы компилятор подставил рекурсивный вызов оператора -> для Bar). Так же и для Bar, в нём перегружен оператор ->, возвращающий Foo, чтобы компилятор мог применить -> к объекту типа Foo. Однако когда-то же компилятор должен остановиться? Вот таким базисом и служит оператор -> в Foo, возвращающий указатель на объект типа Value. Как только мы получили указатель - компилятор применяет стандартный оператор ->, т.е. обращается именно к члену объекта типа Value, а не рекурсивно применяет определённый пользователем оператор, и наконец доходит до реального поля value, значение которого и будет результатом применения оператора -> к объекту типа Moo.
1
|
|
|
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
|
|
| 31.01.2013, 13:29 [ТС] | |
|
Ай красавчик! Все ясно теперь.
0
|
|
| 31.01.2013, 13:29 | |
|
Помогаю со студенческими работами здесь
9
перегрузка операторов Перегрузка операторов Перегрузка операторов "==" и "!=" для строк Перегрузка операторов Перегрузка операторов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|