2 / 2 / 0
Регистрация: 24.11.2016
Сообщений: 77
|
||||||
1 | ||||||
Возврат ссылки от функции перегруженного оператора03.08.2017, 16:35. Показов 1388. Ответов 9
Метки нет (Все метки)
Здравствуйте, меня интересует вопрос, когда функция-член класса, к примеру перегруженного оператора присваивания
возвращает ссылку, зачем так делать? Это нужно для того, чтобы создавать цепочку из операторов присваивания? К примеру: a = b = c; где все переменные это объекты класса То есть когда функция возвращает ссылку после b = c на объект класса, функция перегруженного оператора принимает в качестве аргумента ее же значение для выполнения a = b? Или нет? Вот кусок кода из книги:
0
|
03.08.2017, 16:35 | |
Ответы с готовыми решениями:
9
Возврат ссылки из функции Возврат константной ссылки из функции Возврат ссылки на указатель из функции Создание ссылки и возврат из функции |
2 / 2 / 0
Регистрация: 24.11.2016
Сообщений: 77
|
|
03.08.2017, 16:59 [ТС] | 3 |
GbaLog-, хм, понял вас.. ну я пока только начинаю изучение языка, пока буду по этой книге,
а то жалко как-то бросать( А какую бы вы посоветовали? Спасибо
0
|
Любитель чаепитий
|
|
03.08.2017, 18:47 | 5 |
стандартном не рекомендуется начинать имена переменных с нижнего подчёркивания.
т.к. такие названия используются разработчиками компиляторов. а что за книга я не в курсе.
0.50
|
2 / 2 / 0
Регистрация: 24.11.2016
Сообщений: 77
|
|
03.08.2017, 21:42 [ТС] | 6 |
GbaLog-, книга Стэнли Липпмана "C++ для начинающих". Честно говоря, какой год не помню, но искал самое последнее издание
0
|
03.08.2017, 22:22 | 7 |
FishZone, видимо и в самом деле старое читаешь, у него последняя книга называется
Язык программирования C++. Базовый курс Добавлено через 2 минуты Не хочу тебя пугать, но придется тебе ее с самого начала читать, ибо новой инфы очень много
1
|
2 / 2 / 0
Регистрация: 24.11.2016
Сообщений: 77
|
|
03.08.2017, 23:06 [ТС] | 8 |
Ferrari F1, спасибо, та не страшно особо, если будет попадаться undefined behaviour, буду в сети искать причины и записывать отдельно, а сначала я чисто для себя все делаю, потом уже буду на новое переходить
0
|
Заблокирован
|
|
03.08.2017, 23:24 | 9 |
Вы про
Сообщение от Стандарт
Здесь нет ни double underscode, ни underscode followed by an uppercase letter. И поля классов определённо не находятся in the global namespace. Добавлено через 12 минут Но тем не менее, я соглашусь с self-assignment test — это отвратительно. move/copy-and-swap (с параметром "по значению") лучше.
0
|
495 / 209 / 70
Регистрация: 27.05.2016
Сообщений: 557
|
||||||
04.08.2017, 00:03 | 10 | |||||
Так делают для того что бы семантика присваивания для разрабатываемого типа не отличалась от семантики присваивания встроенных типов. Вы же, как автор разрабатываемого нового типа, можете возвращать что угодно, хоть void, но клиентов вашого такого класса, это скорее всего, поставит в недоумение и, возможно, вызовет у них дурные мысли о вас как о программисте.
Да, ну и плюс, наверное же надо писать с учетом безопасности:
1
|
04.08.2017, 00:03 | |
04.08.2017, 00:03 | |
Помогаю со студенческими работами здесь
10
Вызов перегруженного оператора Использование перегруженного оператора << Возврат из функции ссылки на экземпляр класса Странный вывод перегруженного оператора Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |