皆さんありがとうございます。
C++風の方法として下記のものもありました。
class SingletonClass {
private:
SingletonClass(void) {}
public:
static SingletonClass& getInstance(void) {
static SingletonClass singleton;
return singleton;
}
void doSomething(void);
};


これなら、別にnewでインスタンス作ってるわけじゃないので、
プログラム終了時に自動的に解放されるという認識でよいでしょうか?