Здравствуйте, DILL, Вы писали:
DIL>Есть такой большой объект-"матка", который обслуживает множество других. Эти обслуживаемые объекты выдаются по запросу. Тоесть в метод GetMyObject(int nObjectID) дается ключ, и в этом методе создаётся и возвращается new MyObject(nObjectID) DIL>По одинаковым ID нужно выдавать один и тот же объект. Тоесть, например, хранить ссылку на него в HashMap и содавать новый только если ссылки там нет. И удалять его из HashMap и из памяти, как только освобождается последний указатель. DIL>Проблема в том, что последний указатель — это и есть ссылка из HashMap! Как бы вызывать деструктор объекта при освобождении всех указателей, кроме последнего? DIL>Вот такая проблема.
а если после "освобождения последнего указателя, кроме последнего" — у хранилища опять попросят этот объект, а ты все уже удалишь его... Опять создавать ? Что эти объекты столько весят, что держать в памяти не хочется ?