Доброе время суток.
Допустим есть чисто виртуальный класс АА. От него наследуются несколько разных классов (пусть ББ для примера), реализующих интерфейс АА.
И есть третий класс ВВ, который через интерфейс АА, работает с классом ББ. Тип ББ определяется во время работы программы.
Загвоздка в том, что в рамках программы должен быть только один экземпляр класса ББ. Если сделать статические методы get_instance & release_instance с подсчётом ссылок, то всё будет работать, но не хочется эти методы писать для каждого класса ББ. Нельзя ли этот функционал написать один раз. В виде шаблона, или как-то АА расширить?
С утра сижу думаю, как такое сделать, но сегодня не выспался, смотрел с друзьями футбол, голова не варит. Надеюсь на коллективный разум лора. Мнения анонимных аналитиков приветствуется, так что не стесняйтесь, высказывайтесь, дискутируйте.
Спасибо.