C ++: Лучший способ уничтожить статические вещи

Когда у меня есть класс, содержащий статические вещи, как я могу наилучшим образом освободить память в конце приложения?

Foo.h

class GLUtesselator;

class Foo
{
private:
    static GLUtesselator *tess;
public:
    Foo();
    virtual ~Foo();
}

Foo.cpp

#include "Foo.h"

#include <GL/glu.h>

GLUtesselator *Foo::tess = gluNewTess(); // System call

Foo::Foo() {}
Foo::~Foo()
{
     // And of course I don't want to destruct it here,
     // because I'm going to use the tesselator in other instances of Foo
     // Otherwise:
     // gluDeleteTess(tess);
}

Существуют ли лучшие альтернативы сделать метод, чтобы удалить статические вещи и вызвать его, когда приложение завершается?
Или я могу сказать: «Ой, что угодно, приложение закрывается. ОС освободит память ...»?

Спасибо

5
задан Martijn Courteaux 28 August 2010 в 07:20
поделиться