|
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
|
||||||
Почему передача по ссылке не работает, только по указателю?05.08.2015, 21:16. Показов 6466. Ответов 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 в конструктор[по ссылке\указателю ?] Передача параметров в функцию по значению, по ссылке и по указателю Передача параметров функции по значению, ссылке и указателю Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
начало и оглавление
-
Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|