37 lines
921 B
C++
37 lines
921 B
C++
class Singleton
|
|
{
|
|
public:
|
|
static Singleton & Instance()
|
|
{
|
|
// Since it's a static variable, if the class has already been created,
|
|
// It won't be created again.
|
|
// And it **is** thread-safe in C++11.
|
|
|
|
static Singleton myInstance;
|
|
|
|
// Return a reference to our instance.
|
|
return myInstance;
|
|
}
|
|
|
|
// delete copy and move constructors and assign operators
|
|
Singleton(Singleton const&) = delete; // Copy construct
|
|
Singleton(Singleton&&) = delete; // Move construct
|
|
Singleton& operator=(Singleton const&) = delete; // Copy assign
|
|
Singleton& operator=(Singleton &&) = delete; // Move assign
|
|
|
|
// Any other public methods
|
|
|
|
protected:
|
|
Singleton()
|
|
{
|
|
// Constructor code goes here.
|
|
}
|
|
|
|
~Singleton()
|
|
{
|
|
// Destructor code goes here.
|
|
}
|
|
|
|
// And any other protected methods.
|
|
}
|