|
8 / 8 / 0
Регистрация: 08.01.2013
Сообщений: 85
|
|||||||||||
Передача существующего объекта вместо создания нового31.07.2014, 02:08. Показов 3173. Ответов 39
Метки нет (Все метки)
Есть класс Word. Он неизменяемый: все методы - константные.
Учитывая это я пытаюсь создать класс таким образом чтобы вместо создания нового объекта Word передавался уже созданный и сохраненный объект с такими-же параметрами. Такой способ, к примеру, используется в Java с классом String (String pool in Java). Пример кода, что я имею в виду.
0
|
|||||||||||
| 31.07.2014, 02:08 | |
|
Ответы с готовыми решениями:
39
Добавление нового и/или обновление существующего свойства объекта Перезаполнить элемент вместо создания нового
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
|
| 31.07.2014, 05:29 | |
|
попробуем подойти по другому
отвлечемся от программирования вот есть класс человек, описание его сущностей и есть объект Winorun, и с ним нужно работать очень просто во все справочники забиваем этот объект, выдаем ему паспорт ![]() но как создать еще один объект Winorun ![]() причем он должен полностью повторять первый, т.е создать клон Но он должен и занимать тоже время и пространство что и первый ![]() противоречий не видишь?
0
|
|
|
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
|
|
| 31.07.2014, 05:31 | |
|
как ты из конструктора вернёшь ссылку?
0
|
|
|
39 / 39 / 8
Регистрация: 03.05.2013
Сообщений: 178
|
|
| 31.07.2014, 05:32 | |
|
Не понял зачем создавать новый когда При попытки создать еще одного Winorun, говорим место сужествования текущего
0
|
|
|
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
|
|
| 31.07.2014, 05:33 | |
|
Winorun, как ты из конструктора вернёшь ссылку?
0
|
|
|
39 / 39 / 8
Регистрация: 03.05.2013
Сообщений: 178
|
|
| 31.07.2014, 05:37 | |
Либо я плохо обьесняю либо вы не понимаете.Добавлено через 1 минуту я бы код кинул, но смогу это сделать не раньше обеда
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
||
| 31.07.2014, 05:39 | ||
|
но создавать объект ты можешь только динамически, и придется переопределять new т.е вызывается оператор new проверяет есть ли такой объект в списке, если есть возвращает указатель если нет выделяет память и вызывает конструктор но что то мне подсказывает что от такой оптимизации только хуже будет например как узнать что такой объект существует? по какому критерию? только по содержимому строки ? или какой то идентификатор?
0
|
||
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
| 31.07.2014, 05:39 | |
|
0
|
|
|
39 / 39 / 8
Регистрация: 03.05.2013
Сообщений: 178
|
|
| 31.07.2014, 05:42 | |
|
alsav22, тебе ValeryS, подробно и обстоятельно расписал
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
|
| 31.07.2014, 05:44 | |
|
0
|
|
|
39 / 39 / 8
Регистрация: 03.05.2013
Сообщений: 178
|
|
| 31.07.2014, 05:46 | |
|
заведи статический массив указателей а лучше список или вектор и сравнивай,
но создавать объект ты можешь только динамически, и придется переопределять new т.е вызывается оператор new проверяет есть ли такой объект в списке, если есть возвращает указатель если нет выделяет память и вызывает конструктор
0
|
|
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||
| 31.07.2014, 05:46 | ||||
|
0
|
||||
|
39 / 39 / 8
Регистрация: 03.05.2013
Сообщений: 178
|
|
| 31.07.2014, 05:47 | |
|
Ты меня тролишь чтоЛИ
0
|
|
|
|
||
| 31.07.2014, 05:59 | ||
Сообщение было отмечено QGuest как решение
Решение
QGuest, вам тут советуют что-то не то. Или вы не понимаете, чего хотите
. Если вы хотите класс строк как в Джаве: неизменяемые, и чтобы кодКак я понял, вам вполне подойдёт строка со счётчиком ссылок. Пример реализации описан у Страуструпа (примерно глава 7, пункт 6 во втором издании и далее).
1
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
|||||||
| 31.07.2014, 06:11 | |||||||
именно проверяем, если нет создаем я этим давно не занимался, да и мысль только сейчас пришла не сформировалась полностью, по этому распишу коряво полу Си полу псевдо код
0
|
|||||||
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
| 31.07.2014, 06:24 | |
|
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
|
| 31.07.2014, 06:34 | |
|
0
|
|
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|||
| 31.07.2014, 06:46 | |||
|
0
|
|||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,878
|
||||||||||||||
| 31.07.2014, 07:23 | ||||||||||||||
![]() проверка типа такой
alsav22, ты меня так спрашиваешь как будто я уже решение предложил ![]() А я предложил только идею ![]() задачка интересная но сейчас совершенно нет времени через несколько дней, если раньше не решат, попробую реализовать Добавлено через 1 минуту проверить есть ли объект с таким содержимым
1
|
||||||||||||||
| 31.07.2014, 08:36 | |
|
0
|
|
|
39 / 39 / 8
Регистрация: 03.05.2013
Сообщений: 178
|
||||||
| 31.07.2014, 10:48 | ||||||
|
Как и обещал выкладываю код (Необходимо добавить деструктор). Через new сильно геморойно.
1
|
||||||
| 31.07.2014, 10:48 | |
|
Создание нового окна существующего класса
Создание нового tabsheet с копированием элементов существующего Настройка нового домена на папку существующего сайта Ошибка при создании нового проекта/открытии существующего Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу (вариант №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
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
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, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|