0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 13
|
|
1 | |
Передача по ссылке или указателю?15.02.2013, 17:26. Показов 3378. Ответов 26
Метки нет (Все метки)
0
|
15.02.2013, 17:26 | |
Ответы с готовыми решениями:
26
Передача по ссылке или по указателю Передача в функцию по ссылке или указателю Передача параметров в функцию по значению, по ссылке или по указателю Передача по указателю и по ссылке |
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
|
|
16.02.2013, 07:46 | 21 |
а метод класса это не функция не? та же самая функция, только используется объектами класса. я вообщето методы и имел ввиду. Хотелось бы увидеть добавление листьев в бинарное дерево с использованием ссылок, честно хотябы ради просто увидеть, потому что я не особо это себе представляю
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
16.02.2013, 08:12 | 22 |
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
16.02.2013, 10:40 | 24 |
Ссылка не позволит удалить аргумент нафиг, указатель лучше для массива, так как адрес ссылки этом случае всё равно придётся присвоить указателю, а иногда бывает полезней всех ссылка на указатель.
0
|
Комп_Оратор)
|
|
16.02.2013, 14:19 | 25 |
Совершенно согласен. И по тому как задан вопрос, ответ:
Передача по ссылке или указателю? вполне это раскрывает. Указатели значительно шире, ссылки уже безопаснее и удобнее (тема для вечной полемики)). Но язык это соглашение. И поскольку нет возможности написать конструктор копии без использования ссылки (просто по определению, т.к. теоретически и передача указателя тоже гарантирует предотвращение создание копии объекта. То что сам указатель копируется не проблема) то и не обойтись без ссылок как типа. Но всё раскручивается по обычной спирали. Новичок столкнулся с главой "Ссылки и указатели", а дискуссия давно вышла из границ его понимания. Мешает пониманию и то, что передача указателя, тоже является видом передачи "по ссылке", чисто терминологически и это встречается в литературе. Однако ссылка и указатель не как способы передачи а как типы, определяются тем же что и типы: способ и место хранения, допустимые операции... И разница тут огромна. Указатель - указывает на тип (массив типа, вернее, то есть область памяти которая распределена определённым образом). Даже указатель на одно значение, - указатель на массив из одного члена и обратиться можно по индексу 0)). Его тип в конечном счёте, без инициализации, не завершён в определении. Декларация и инициализации могут быть проведены раздельно, что позволяет использовать мощь указателей. В том числе и для стрельбы в ногу. Преимуществ без недостатков не бывает. Ссылка, по определению не может быть неинициализирована. Она сразу связана. В контексте, автоматически предоставляет то, что требуется по смыслу: адрес или значение . Само имя переменной является ссылкой на себя и это позволяет передавать переменные туда, где ожидается ссылка, без каких-либо дополнительных усилий. Кроме того, сама ссылка как переменная не требует выделения памяти.
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
16.02.2013, 16:52 | 26 |
А также перевести на мусор, уничтожить уже уничтоженный объект, еще не выделенный итп. (Я вообще про указатели не говорил например, я отвечал на твое перенаправь ссылку, перенаправь ссылку). Твои претензии к ссылкам в с++ такие же как претензия почему синус нуля не равен единице? Почему? По определению.
0
|
16.02.2013, 17:25 | 27 |
Ну если так рассуждать, то надо писать вообще только на Яве. А я сам знаю, где у меня мусор, где нет, от чего может течь память и как этого не допустить.
К тому же я говорю о реальных ситуациях, - когда нужно изменить поведение объекта по указателю на базовый класс, удалив один потомок этого класса и сконструировав другой. - динамические списки/деревья, в которых каждый элемент хранит указатель на следующий и этот указатель изменяется по мере вставки/удаления элементов. - хранить указатели на какие-нибудь одни данные в нескольких классах, обрабатывающих их каждый по своим принципам, при этом исходный набор данных увеличивается/уменьшается динамически. ... и.т.д. Вот и остаётся у ссылок работа лишь заменять указатели в объявлениях функций.
0
|
16.02.2013, 17:25 | |
16.02.2013, 17:25 | |
Помогаю со студенческими работами здесь
27
Передача аргументов в функцию по ссылке и указателю Передача параметров в функцию по значению, по ссылке и по указателю Почему передача по ссылке не работает, только по указателю? Передача параметров функции по значению, ссылке и указателю Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |