|
0 / 0 / 0
Регистрация: 11.11.2018
Сообщений: 59
|
||||||
Перегрузка оператора приведения типа24.04.2019, 13:45. Показов 6335. Ответов 32
Метки нет (Все метки)
Здравствуйте, мне нужно преобразовать сущность к одномерному массиву int*() и я не понимаю как это реализовать. Если я выделяю динамическую память, то будет утечка, потому-что я её потом не очищу.
0
|
||||||
| 24.04.2019, 13:45 | |
|
Ответы с готовыми решениями:
32
Перегрузка оператора шаблонного класса в зависимости от типа Вызов оператора приведения базового класса |
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|||
| 24.04.2019, 15:54 | |||
|
Добавлено через 1 минуту Добавлено через 2 минуты И конечно же геттеры нужно вынести в public, иначе зачем они нужны такому классу. Как и поля у меня в коде.
0
|
|||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
||||
| 24.04.2019, 15:57 | ||||
![]()
0
|
||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 24.04.2019, 16:22 | |
|
rat0r,
Прочитал, но не получилось выявить UB. Был бы рад если бы ты объяснил...) TRam_, А зачем тогда вообще нужны такие операторы? К тому же, где там разные типы? ![]() По сути оператор просто возвращает указатель на int (как если бы получили его через геттер)... А квадратные скобки просто "достают" значение с этого адреса В классе же это поле типа int, так ведь? Вот его мы и используем... единственное что смущает в том коде это то что адрес first используется как массив в то время как first им не является. А с наличием проверки на паддинг разобрался (просто в мейн не посмотрел перед отправкой сообщения)
0
|
|
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
|||||||
| 24.04.2019, 16:32 | |||||||
+, а из-за доступа к *(k + 1).Zero-cost геттеры. Требуют поддержки [[no_unique_address]] и offsetof для non-standard layout типов. Ну и выполнения static_assert-ов.
2
|
|||||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 24.04.2019, 16:44 | ||
|
Croessmah,
Так в коде же нет явного использования оператора + Полагаю по этой причине все должно быть нормально (но это лишь мои догадки) Но вот first не массив, поэтому возможно думаю UB, т.к мы выходим за его рамки, где теоретически могут быть всякие данные. Хотя наверное работать будет нормально, ввиду того что данные обьекта находятся в памяти смежно Добавлено через 4 минуты rat0r, Теперь походу понял где стандарт намекает на UB
0
|
||
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
|
| 24.04.2019, 16:47 | |
|
1
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 24.04.2019, 17:02 | |
|
rat0r,
Не знаю, я открыл [expr]/4 а там это... Буду рад если кто нибудь разложит по полочкам
0
|
|
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
|
| 24.04.2019, 17:15 | |
|
0
|
|
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 24.04.2019, 17:38 | |
|
Undisputed,
На мое скромное мнение, там идется что-то типо о том что, y нас есть память. Это типо огромный массив байтов. Компилятор определяет, какие переменные нашей программы где в этом массиве расположены. Если мы перемещаемся с помощью +/- внутри одного массива, то это гарантированно сработает. Если нет - то в общем случае компилятор может решить что-то куда-то переставить, и + вытащит нас в неизвестно что. Поэтому UB. Например, если компилятор выровняет 4-байтные int-ы в структурах по пределах 8 байтов, поскольку архитектура так быстрее с ними работает, но оставит массивы как есть. Тогда k + 1 покажет на "пустые" 4 байта, не задействованные в программе. Но не в х86? =.=
1
|
|
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 24.04.2019, 17:41 | |
|
rat0r,
Моя невнимательность Спасибо
0
|
|
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 24.04.2019, 17:41 | |
|
rat0r, далеко от истины?
0
|
|
|
Неэпический
|
|
| 25.04.2019, 08:46 | |
|
0
|
|
| 25.04.2019, 08:46 | |
|
Помогаю со студенческими работами здесь
33
Приведения типа классов Шаблоны. Ошибка приведения типа Неправильное приведения типа при возврате элемента из стандартного стека Перегрузка оператора + Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|