|
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
|
||||||
Почему передача по ссылке не работает, только по указателю?05.08.2015, 21:16. Показов 6574. Ответов 102
Метки нет (Все метки)
0
|
||||||
| 05.08.2015, 21:16 | |
|
Ответы с готовыми решениями:
102
Передача по указателю и по ссылке Передача по ссылке или указателю? Передача по ссылке или по указателю |
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||
| 06.08.2015, 22:59 | |||
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||||||||
| 06.08.2015, 23:09 | ||||||||||||||||||
|
потому что "настоящий массив" - это тип данных. в записи вида:
однако, сам массив, как тип данных языка с++, описанный в разделе 8.3.4 Arrays не фигурирует. даже несмотря на то, что синтаксис new-expression позволяет использовать типы:
сколько нужно выделить, и как заполнить. так же дозволяется использовать динамические значения:
согласно которому размерности массива должны быть заданны константами времени компиляции. из чего следует, что в new-expression на самом деле используется синтаксический сахар, внешне очень похожий на массив, но массивом не являющийся. Добавлено через 2 минуты но официально это - один из стандартных контейнеров.
0
|
||||||||||||||||||
|
Заблокирован
|
|||
| 06.08.2015, 23:19 | |||
|
Добавлено через 1 минуту hoggy, у контейнера есть аллокатор, как раз вектор и реализует динамический массив Загляни сюда, на предмет что есть вектор http://www.cplusplus.com/reference/vector/vector/
0
|
|||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 06.08.2015, 23:27 | ||
|
hoggy, я там выше уже приводил цитату. New создает объект указанного типа, точка. Если тип - это массив, то будет создан массив.
Для ситуации, когда у нас размерность не константа времени компиляции там заведен специальный вариант - new-type-id (в противовес type-id, посмотри грамматику). Так что это не нарушение пункта 8.3.4, а специально расширенный вариант для new. Иначе смысла в этом new было бы ноль, т.к. все равно пришлось бы все размерности держать в compile-time. Добавлено через 3 минуты
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||
| 06.08.2015, 23:27 | |||||||
0
|
|||||||
|
Заблокирован
|
|||||||
| 06.08.2015, 23:27 | |||||||
|
DrOffset, поясните ваше выссказывание
0
|
|||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 06.08.2015, 23:28 | |
|
0
|
|
|
Заблокирован
|
|
| 06.08.2015, 23:30 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 06.08.2015, 23:31 | |||
|
не понятно, почему вы думаете, что "расширенный вариант для new" не нарушает 8.3.4 Добавлено через 53 секунды это - локальный массив. он расположен на стеке.
0
|
|||
|
Заблокирован
|
|||
| 06.08.2015, 23:32 | |||
|
Добавлено через 42 секунды
0
|
|||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 06.08.2015, 23:33 | ||
|
Во-вторых это динамический массив, который вы сами написали. А цитата говорит о том, что в сам язык такие массивы не поддерживает. Ближайший аналогичный пример - это строки. Всем известно, что строки в С\С++ - это на самом деле массивы символов. Если мы не поставим в конце ноль, то данный массив символов перестанет считаться "строкой". Однако, например, в паскале есть тип string, который является настоящей строкой. Его "строковость" поддерживается самим языком и не зависит от того решил программист поставить ноль или не решил. Понимаете?
0
|
||
|
Заблокирован
|
|
| 06.08.2015, 23:37 | |
|
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 06.08.2015, 23:38 | ||
|
0
|
||
|
60 / 11 / 4
Регистрация: 09.09.2014
Сообщений: 182
|
||
| 06.08.2015, 23:40 | ||
|
Точно так же, как вы не можете любой материальный объект взять, и сделать больше. Можно только вместо одного объекта взять другой большего размера. Оба объекта при этом не изменяются. А если не изменяются, значит статичны, правильно?
0
|
||
|
Заблокирован
|
||
| 06.08.2015, 23:42 | ||
|
Добавлено через 49 секунд
0
|
||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 06.08.2015, 23:43 | ||
|
Я просто хочу сказать, что это вполне понятное и логичное заблуждение. Просто авторы книг или переводчики обычно не делают разницы, ставя знак равенства между динамическим массивом и массив с динамическим размещением. Но формальная разница есть. Я не говорю, что нужно сейчас перестать называть массивы С++ динамическими. Я не выступаю за тотальный формализм, нет. Но можно где-то в подкорке у себя держать флажок об это разнице. И не делать удивленные глаза, когда об этом заходит речь.
0
|
||
|
Заблокирован
|
|
| 06.08.2015, 23:43 | |
|
DrOffset, конечно же плюсы имеют иной механизм выделения памяти нежели Сишный, но динамический массив от этого динамическим быть не перестаёт, ваши аргументы я услышал, но скажу честно не переубедили(надеюсь ругаться не будете
)
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 06.08.2015, 23:46 | ||
|
И я не считаю вас за нуба. Вы отвлеклись на личное, хотя личного в моем посте не было. Прочитайте еще раз к чему было написано про строки, но на этот раз без эмоций.
0
|
||
| 06.08.2015, 23:48 | |
|
0
|
|
|
Заблокирован
|
||
| 06.08.2015, 23:50 | ||
|
0
|
||
| 06.08.2015, 23:50 | |
|
Передача аргументов в функцию по ссылке и указателю
Передача std::vector в конструктор[по ссылке\указателю ?] Передача параметров в функцию по значению, по ссылке и по указателю Передача параметров функции по значению, ссылке и указателю Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|