|
63 / 35 / 13
Регистрация: 21.10.2010
Сообщений: 538
|
||||||
Зачем в случае присваивания делают ссылку/указатель на аргумент константным04.08.2011, 17:45. Показов 2231. Ответов 8
Метки нет (Все метки)
Здравствуйте, позвольте я задам вопрос по С++
1)
0
|
||||||
| 04.08.2011, 17:45 | |
|
Ответы с готовыми решениями:
8
Как получить ссылку на указатель или указатель на указатель в массиве? Зачем делают каталоги? Зачем нужен указатель на указатель при работе с однонаправленным списком? |
|
Заблокирован
|
||
| 04.08.2011, 17:49 | ||
|
Имеет смысл передавать по ссылке классы, так как при передачи их по значению вызываются конструкторы, которые влекут за собой накладные расходы. То есть при передаче класса по значению в качестве аргумента, во-первых, вызывается конструктор для создания копии значения, а при завершении функции вызывается деструктор этого класса. Если вы не собираетесь в своей функции менять объект класса, то лучше передать его по константной ссылке. Размер ссылки, фактически, равен размеру int, то есть обычно занимает одно машинное слово, и никакие конструкторы и деструкторы не вызываются. А для объектов класса при передачи их по значению в стеке создается к тому же копия этого класса, а классы могут быть очень громоздкими!
1
|
||
|
Заблокирован
|
|||||||
| 05.08.2011, 16:25 | |||||||
|
То есть эти два варианта
0
|
|||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 05.08.2011, 16:28 | |
|
Сыроежка, А это уже дело программиста. + к тому функция может быть изменена. Но int действительно нет резона передавать по const ссылке.
0
|
|
|
|
|||
| 05.08.2011, 16:53 | |||
. Мне почему-то показалось, что ТС имел в виду аргумент любого типа, просто пример привел неудачный. А так-то само собой разницы нет.
0
|
|||
|
Заблокирован
|
||
| 05.08.2011, 16:59 | ||
Если память не изменяет, то посмотрите, например, определение функции strchr в стандарте языка С.
0
|
||
|
|
||
| 05.08.2011, 17:22 | ||
![]() Тут уже виноваты возможности языка. Собственно подобные функции часто используются, чтобы "найти и заменить", поэтому возвращаемый указатель должен быть неконстантным. Для поиска естественно использовать константный указатель. Как иначе обеспечить подобное поведение функции в языке Си, лично я не знаю Но С++ в этом плане более строгий, а мы говорим о Си++
0
|
||
|
Заблокирован
|
||||||
| 05.08.2011, 17:24 | ||||||
|
Да, в С++ выкрутились из ситуации посредством перегрузки этих функций. На самом деле проблема более глубокая, чем кажется на первый взгляд.
Рассмотрим ту же С-функцию strchr. Она объявляется примерно следующим образом char * strchr( const char *s, int c ); ВЫ уже сказали, почему так делается. Но и это определение некорректное! Дело в том, что в функцию может передаваться строка, которая до этого была объявлена именно как константная! А мы из функции возвращаем на нее неконстантный указатель! То есть, фактически, имеет место следующий код:
0
|
||||||
| 05.08.2011, 17:24 | |
|
Помогаю со студенческими работами здесь
9
Реализация двоичных деревьев поиска: Зачем в параметрах функции используется указатель на указатель Зачем иногда так делают? Зачем люди делают каталоги? Зачем и с какой целью это делают?! Зачем на современных сайтах делают кучу вложенных дивов ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|