|
0 / 0 / 0
Регистрация: 11.11.2018
Сообщений: 59
|
||||||
Перегрузка оператора приведения типа24.04.2019, 13:45. Показов 6647. Ответов 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
|
|||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||
| 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 | |
|
Приведения типа классов Шаблоны. Ошибка приведения типа Неправильное приведения типа при возврате элемента из стандартного стека Перегрузка оператора + Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки.
Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён".
Изменено отображение буквы Й.
Добавлена. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки.
Добавлено:
- Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|