Главный вопрос:
Как создать указатель на переменную, которая может быть сохранена, а затем используется для доступа к этой переменной в более позднее время Без копии быть созданоСоставление списка переменных без их копирования
внизу здесь просто ответить на любые вопросы, которые люди могли бы иметь, почему я хочу сделать это
Пролог:
Я сделать игру с DirectX и я хочу, чтобы создать «список» лиц (особый класс) в другом классе. Я хочу сделать это, чтобы я мог отслеживать все объекты в игре, которые отображаются определенным методом (один список для треугольников, другой для строк и т. Д.). Для этого у меня первоначально был класс, и у него был std::vector<Entity>
, тогда у класса была функция add(Entity entity)
, которая добавила бы указанный объект в вектор. Это получилось очень хорошо, пока я не начал пытаться внести изменения в эти объекты в вектор.
Проблема:
Сначала я хотел бы создать объект в главном мировом цикле, Entity testEntity = Entity(position);
то я хотел бы добавить его в список сущностей, entityList.add(testEntity);
. Когда эта команда вызывается, она на самом деле просто создает копию объекта, как это было в то время, когда была вызвана команда добавления. Это означает, что внезапно появляются 2 объекта, которые представляют 1, сущность в основном мире, на которую воздействует вся логика игры, и сущность в сущности, которая не обновляется, , но. Эти два не синхронизированы.
Желаемый эффект:
EntityList-х std::vector
на самом деле просто наполнен каким-то указатель на лицо в мировом цикле. Затем, когда объект обновляется в цикле мира, entityList имеет те же данные для этого объекта.
«Как создать указатель на переменную, которая может быть сохранена, а затем использоваться для доступа к этой переменной позднее? Без создания копии» - с помощью оператора '&'? Я еще не прочитал остальную часть вопроса, но до сих пор я не уверен, что вы ищете. – user2357112