C++ - Singleton

Table of Contents

Singleton plays an important role in program architecturing for its global visibility. For instance, system parameters are usually structured as a singleton. What deserves to be noticed, a singleton can be realized in a variety of manners.

Taking C++ for instance, a typical singleton can be simply defined as

singleton.h

#ifndef SINGLETON_H
#define SINGLETON_H

class Singleton
{
private:
    static Singleton *instance;
    Singleton() = default;
    Singleton(const Singleton &rhs) = delete;
    Singleton& operator=(const Singleton &rhs) = delete;
public:
    static Singleton* get_instance();
};

#endif /* SINGLETON_H */

singleton.cpp

#include "singleton.h"

Singleton *Singleton::instance = nullptr;

Singleton* Singleton::get_instance()
{
    if (instance == nullptr)
        instance = new Singleton;
    return instance;
}