Приветствую, Erop, вы писали:
E> S>Так?
E> Почти.
E> Что за класс? Это какой-то интерфейс большой, ну, скажем, интерфейс приложения, или это какой-то объект?
Таких либ пока что пара.
1) читает / пише конфиг и дает доступ к параметрм
2) работа с сетью — серверный\кдиентский сокет...
E> Сколько экземпляров этого класса может быть в наличии?
Вполне возможно что больше одного
E> Просто надо как-то решить вопросы владения.
E> Во-первых, нехорошо, что с вызывающей стороны могут удалить этот твой экземпляр. Сервер может быть не готов, кроме того, клиент это может сделать как-то не так.
Так, стоп... У нас есть 2 приложения, в каждом по паре указателей на экземпляры класса. Насколько я понимаю — между собой приложения никак пересечься не могут — следовательно разговор идет только о возможных проблемах внутри одного приложения?
E> Намного надёжнее деструктор сделать protected, а в интерфейс добавить метод virtual void Destroy() = 0, который тоже реализовать в My. Ну там в виде delete this, например. Или COW замутить, если надо. Обычно при построениии таких систем экспортированных объектов (скажем в COM, например) имеют какой-то интерфейс, который как раз отвечает за владение и прочие токости, а из него выводят уже все остальные.
Хорошая идея, спасибо, подумаю.
E> Но если нужно экспортировать интерфейс синглетона, то можно так не заморачиваться а просто завести статический объект и возвращать из той самой функции его адрес.
Гм... надо подумать...