с другой стороны, возможно, вы должны сделать указатель экземпляра статическим членом функции get, а не класса, это не имеет большого значения, если вы используете метод new / pointer. но если вы просто создаете статический экземпляр (т.е. не используете указатель и не возвращаете ссылку на него из функции get get), это имеет большое значение, потому что:
Если он является статическим членом класса, его конструктор вызывается всякий раз, когда (потому что он глобальный), если он является статическим членом функции get, он не создается до тех пор, пока не будет вызван в первый раз, это облегчает некоторые из проблемы, с которыми люди сталкиваются с синглетами и их прославляют глобалы, другая хорошая вещь: большинство компоновщиков пропускают функцию get и, следовательно, статический экземпляр полностью, если он никогда не вызывается, поэтому вам не нужно беспокоиться о вызове new, чтобы он использует только память, если она используется.