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; }