// sample.hpp
class sample
{
public:
~sample();
static sample* instance();
//
// ...
private:
sample();
}; // class sample
// samople.cpp
sample* instance = 0;
sample::sample()
{}
sample::~sample()
{}
sample* sample::instance()
{
if ( 0 == instance )
{
static sample; // undefined reference to atexit
instance = &sample;
} // if
return instance;
}