Study patterns, there was a question about the Singleton pattern, it should look something like this?

Now engaged in the patterns, on the order of Singleton, do I understand that it should look something like this (all sources write it differently), could you tell me the most descriptive and accurate implementation.
I have looks like this:
#include <iostream>

class Singleton {
public:
 static Singleton* Instance() {
 if (instance == 0) {
 instance = new Singleton;
}
 return instance;
}
protected:
Singleton();
private:
 static Singleton* instance;
};
March 25th 20 at 13:40
2 answers
March 25th 20 at 13:42
Solution
Something like this, but it is better to prevent reproduction
Singleton(Singleton const&) = delete;
Singleton& operator= (Singleton const&) = delete;
March 25th 20 at 13:44
I would recommend the version from Myers. At least for thread-safe initialization.

Find more questions by tags Patterns of designingC++