пока что мне приходится конструктору каждого объекта давать ссылку на объект инициализатор
Для таких случаев есть сингельтон и статический метод типа getInstance, возвращающий указатель на объект, который хранится в приватном статическом свойстве класса.
типа
class Singleton{
private:
static Singleton *instance;
Singleton();
Singleton(const Singleton&);
~Singleton();
public
static Singletone* getInstance()
{
return instance;
}
}
плюс пара доработок для корректной инициализации/удаления. Подсчёт ссылок, или что-нибудь такое. Или что-то более сложное требуется? Если у сингельтона есть иерархия потомков, то можно их все хранить в статическом map, например.