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