T x = foo()
делает копию.
Или ведет себя «как будто» он сделал копию.
Хотя T& x = foo()
, когда foo
возвращает ссылку T&
, только делает ссылку.
Сделать конструктор копирования и оператор присваивания частным. Это помешает людям делать копии всех. Сделав оператор присваивания копии личным, вы не сможете выполнить самокопирование.
Это не альтернатива, чтобы вернуть указатель на синглтон из getInstance
. Это был бы верный способ позволить людям не знать о гарантии того, что всегда есть экземпляр. Указатель указывает, что это может быть нулевой указатель.
Лучшей альтернативой, однако, является не использовать синглеты , если вы можете избежать этого. Есть много проблем с одиночками. Эти проблемы включают управление временем жизни, безопасность потоков и взаимодействие с инструментами, которые обнаруживают утечки памяти.
Приветствия и hth.,