Singleton (Design Pattern)

This creational pattern assures that just one object can get instantiated of that class.

class Monotheism {
private:
    Monotheism() { };
    Monotheism(const Monotheism&);
    Monotheism& operator=(const Monotheism&);
public:
    static Monotheism& getGod() {
        static Monotheism m_god;
        return m_god;
    }
};

int main() {
    Monotheism &god = Monotheism::getGod();
    // ...
    return 0;
}