|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
||||||||||||||||
Return для перегруженных операторов10.12.2017, 23:43. Показов 1431. Ответов 13
Метки нет (Все метки)
тип возвращаемого значения сделать ссылочной это строчка будет работать криво(в результате в x и y появляется какой- то мусор).
А если написать так то всё работает
0
|
||||||||||||||||
| 10.12.2017, 23:43 | |
|
Ответы с готовыми решениями:
13
Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this Импорт из dll перегруженных операторов Наследование перегруженных операторов ввода/вывода |
|
Модератор
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
|
|
| 11.12.2017, 07:29 | |
|
По ссылке нельзя возвращать объект, который будет уничтожен при выходе из функции.
2
|
|
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
||||||
| 11.12.2017, 10:14 [ТС] | ||||||
|
А почему так работает? Здесь я тоже возвращаю объект по ссылке
0
|
||||||
|
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
||||||
| 11.12.2017, 11:26 | ||||||
|
Каждый объект имеет свой срок жизни.
П.С. немного некорректно говорить "возвращаю объект по ссылке". Да, есть такая терминология, но она несколько путает. Объект никуда, на самом деле, не передается. Правильно сказать "возвращаю ссылку на объект".
1
|
||||||
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
||||||||||||||||
| 11.12.2017, 11:59 [ТС] | ||||||||||||||||
|
Спасибо огромное за ваши ответы!
Я знаю что для вас это элементарно просто и логично но я не могу уловить суть данной функции.
То есть так:
0
|
||||||||||||||||
|
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
||||||||||||||||
| 11.12.2017, 12:04 | ||||||||||||||||
Сообщение было отмечено no swear как решение
Решение
1
|
||||||||||||||||
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
||||||
| 11.12.2017, 12:05 [ТС] | ||||||
|
Я так полагаю функция
Исправьте если я где-то ошибся, просто мысли в слух ![]() Хотел до вас написать сообщение
0
|
||||||
|
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
||||||
| 11.12.2017, 12:07 | ||||||
Сообщение было отмечено no swear как решение
Решение
Для справки.
Компилятор имеет специальную оптимизацию для конструкций вида
1
|
||||||
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
|||||||||||
| 11.12.2017, 15:47 [ТС] | |||||||||||
|
Значит такая запись
0
|
|||||||||||
|
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
|
| 11.12.2017, 15:53 | |
|
Да. Верно.
1
|
|
|
Комп_Оратор)
|
||||||
| 11.12.2017, 17:25 | ||||||
Сообщение было отмечено no swear как решение
Решение
no swear, оператор приравнивания обычно возвращает ссылку на себя (*this).
Это потому, что иначе нельзя будет написать: a=b=c=d; Ну и конечно, - проверка на само-приравнивание. В данном примере с хабра (лень было самому писать ) данная проверка смысла не имеет. Она нужна для классов, выделяющих память в куче (обязательно напишите м поюзайте такой пример). Дело в том, что в случае отсутствия такой проверки, объект сначала освободит память, а потом самоприравнияется. То есть, приплыли.
1
|
||||||
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
|||||||||||
| 11.12.2017, 18:57 [ТС] | |||||||||||
|
IGPIGP, Спасибо что ответили. Мне вот всё равно не даёт покоя один вопрос на который не могу найти ответ, почему если написать так:
А если без ссылки на объект
Есть ли "мощное" объяснение этому явлению? Добавлено через 5 минут Ой ИЗВИНИТЕ я уже получил ответ выше!
0
|
|||||||||||
|
Комп_Оратор)
|
||||||||||||||
| 11.12.2017, 19:14 | ||||||||||||||
|
Налицо 2 проблемы. 1. Повторите ссылки. Особенно возврат по ссылке. 2. Операторы класса, как функции члены. Во втором пункте обратите внимание на то, что что бинарный оператор - член вызывается на экземпляре. Например, оператор присваивания:
Добавлено через 52 секунды ![]()
1
|
||||||||||||||
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
|
| 11.12.2017, 19:20 [ТС] | |
|
Спасибо огромное Mirmik, IGPIGP, zss за то что помогли мне понять эту тему
0
|
|
| 11.12.2017, 19:20 | |
|
Помогаю со студенческими работами здесь
14
Как сделать так, что если файл существует return true, если нет - return false
Создание перегруженных функций
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|