Предположим, что у нас есть одноэлементный класс, где функция экземпляра (функция, возвращающая экземпляр singleton класса) была перегружена. Одна версия принимает некоторые параметры и инициализирует объект в конструкторе класса, другая версия не принимает никаких параметров.Как заставить стиль использования для одноэлементного класса
1. myClass::Instance (int x, int y);
2. myClass::Instance ();
Чего мы хотим добиться того, что пользователь класса должен всегда вызывать (1) первый и все последующие вызовы должны быть сделаны только в (2). Пользователю не разрешается совершать первый вызов (2), и после того, как вызов (1) не будет выполнен, последующие вызовы (1) не будут разрешены.
Можно ли достичь этого, не возлагая бремя на проверку указателя NULL на пользователя класса?
Очевидно, что первый вопрос должен быть, можете ли вы обойтись без Singleton? –
Одиночный класс * исключительно * гарантирует, что экземпляр доступен по запросу. У вас нет (да, он доступен, но вы должны сначала вызвать эту функцию). Если ответственность за создание экземпляра связана с пользователем, то у вас совсем нет сингла (что может быть или не быть плохим). –
@Matthieu M. К сожалению, Синглтон необходим в ситуации. – StudentX