id:nicht-seinさんからコメントがあったので書いてみます。 まず、コメントにも書いてくださったようによく見かけるこれ (僅かに手を加えました) class CHoge { private: CHoge() : value_(100) {}; ~CHoge(){}; int value_; public: void setHoge(int value) { value_ = value; } int getHoge() const { return value_; } static CHoge& getInstance() { static CHoge instance_; return instance_; } }; 他からnewされないようにコンストラクタがprivateになってます。 勿論、スタックに置くためにCHoge hoge;もできません。 でも、実はこれはインスタンス