Это может быть не то, что вы ищете .. Но для справки, я использую это следующим образом:
// .h
class Foo {
public:
static Foo* getInstance();
static void destroy();
private:
Foo();
~Foo();
static Foo* myInstance;
};
// .cpp
Foo* Foo::myInstance = NULL;
Foo* Foo::getInstance(){
if (!myInstance){
myInstance = new Foo();
}
return myInstance;
}
void Foo::destroy(){
delete myInstance;
myInstance = NULL;
}
Затем в конце моей программы я вызываю уничтожение объекта. Как указывает Петер, система восстановит память, когда ваша программа закончится, поэтому нет никакой реальной причины. Причина, по которой я использую уничтожение, заключается в том, что Огр жаловался, что я не освободил всю выделенную память. После этого я просто использую это как «хорошую манеру», так как мне нравится убирать за собой.