//A.h
#pragma once
#include <stdio.h>
#include <stdlib.h>
class A
{
public:
static A* Instance();
private:
A(void);
static void Destruct();
static A* _instance;
};
//A.cpp
#include "A.h"
A* A::_instance = NULL;
A* A::Instance()
{
if (!_instance)
{
_instance = new A;
atexit(&Destruct);
}
return _instance;
}
A::A(void)
{
}
void A::Destruct(void)
{
if (_instance)
{
delete _instance;
}
}