//1 кусок кода
MyCl *m = MyCl::init();
m->someFuncA();
delete m;
//2 кусок кода
MyCl *m = MyCl::init();
m->someFuncB();
delete m;
|
зачем delete? суть синглтона - объект класса в единственном уникальном экземпляре будет доступным в разное время в разных участках кода. delete нужен только на выходе из программы уже.
Помойму второй пример удобней и понятней.
|
в твоём случае да.
а в таком нет:
статик:
class myClass
{
static float a,b,c;
public:
static void do();
};
float myClass::a = 0; // неявный момент назначения статик переменных (может вызваться в рандомной последовательности относительно инициализации данных других классов)
float myClass::b = 0;
float myClass::c = 0;
void myClass::do()
{
a = b+c;
}
синглтон:
class myClass
{
float a,b,c;
static myClass* instance;
public:
static myClass* Instance()
{
if (!instance) instance = new myClass();
return instance;
}
static void Release()
{
if (instance) delete instance;
}
void do();
};
myClass* myClass::instance = 0; //единственная инициализация статик данных для синглтон класса. остальные нормальные будут сидеть внутри объекта класса
void myClass::do()
{
a=b+c;
}