63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
1 | |
Передача параметра по константной ссылке - что это?26.07.2014, 17:34. Показов 6073. Ответов 31
Метки нет (Все метки)
объясните мне пожалуйста что такое передача параметра в функцию по константной ссылке? я просто вообще не могу представить что значит & в параметре функции... 2 года как изучаю си, а такое увидел только недавно... & это же операция взятия адреса, я ее знаю только так... но как она может быть параметром убей не пойму...
0
|
26.07.2014, 17:34 | |
Ответы с готовыми решениями:
31
Передача по константной ссылке Передача std::string по константной ссылке \ значению Передача параметров по константной ссылке Передача параметра по ссылке |
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
26.07.2014, 17:37 | 2 |
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
26.07.2014, 17:38 [ТС] | 3 |
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
26.07.2014, 17:39 | 4 |
& - так же как и в Си используется для взятия адреса, если применяется к переменной.
А если применяется к типу, то в C++ это означает ссылочный тип. Если Вы знакомы с Си и передачей по указателю, то можете в первом приближении считать ссылку завуалированным указателем. Основное отличие, что указатель может в разное время указывать на разные объекты. А ссылка же после инициализации не может быть перекинута на другой объект.
1
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
26.07.2014, 17:39 | 5 |
0
|
2 / 2 / 0
Регистрация: 19.05.2013
Сообщений: 27
|
||||||
26.07.2014, 17:40 | 6 | |||||
Это когда функция просит на вход указатель. То есть
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
26.07.2014, 17:42 [ТС] | 7 |
Tulosba, а зачем тогда пишут const еще? если она и так константна? и еще мне тут что то говорили про то что такой способ передачи лучше чем простая передача, типа тут копирования лишнего не происходит, о чем это вообще?
Добавлено через 41 секунду Владимир_1994, это вообще не то...
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
26.07.2014, 17:48 [ТС] | 9 |
да и еще как потом вызывать такую функцию и внутри нее обращаться к переменной ссылке?
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
26.07.2014, 17:49 | 10 |
1. Чтобы гарантировать неизменность объектов в вызывающем контексте.
2. Чтобы эту же функцию можно было использовать и для константных объектов.
0
|
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
|
|
26.07.2014, 19:05 | 11 |
Вызывать и обращаться так же как и при передаче по значению. Переменная, переданная по константной ссылке, не может быть изменена в вызываемой функции, по не константной может, при этом изменения будут видны после выхода из функции, в отличие от переменной, переданной по значению.
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
26.07.2014, 19:09 [ТС] | 12 |
uglyPinokkio, короче тогда я вообще не понимаю чем же она будет отличаться от обычного указателя? кроме разве что того что не надо писать при вызове &
0
|
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
|
26.07.2014, 19:11 | 13 |
Ссылка не может быть нулевая. Ссылку нельзя переназначить
0
|
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
|
|
26.07.2014, 19:12 | 14 |
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
26.07.2014, 19:12 | 15 |
GetHelp, выше уже писали о разнице:
1) у ссылки отсутствует null-семантика; 2) ссылка обязана быть инициализирована; 3) ссылка за время жизни может ссылаться только на один объект.
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
26.07.2014, 19:13 [ТС] | 16 |
ок
а вот тут че то не стыкуется...
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
26.07.2014, 19:14 | 17 |
Через неконстантную ссылку можно изменить значение объекта, но нельзя заставить ссылку начать ссылаться на другой объект.
0
|
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
|
|
26.07.2014, 19:15 | 18 |
Нельзя изменить адрес, на который указывает ссылка, значение по этому адресу - можно для не константной ссылки.
0
|
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
|
|
26.07.2014, 19:16 [ТС] | 19 |
ага кажется понял... но вообще какой плюс использования ссылок? по сравнению с указателями
0
|
2443 / 1841 / 406
Регистрация: 15.12.2013
Сообщений: 8,238
|
|
26.07.2014, 19:18 | 20 |
0
|
26.07.2014, 19:18 | |
26.07.2014, 19:18 | |
Помогаю со студенческими работами здесь
20
Передача параметра по ссылке Передача параметра по ссылке Передача параметра по ссылке Передача параметра по ссылке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |