Я новичок в программировании, и я пытался использовать программу, которая делает класс singleton. Это правильный подход для создания класса singleton ??Является ли это правильной программой создания класса singleton?
#include <iostream>
using namespace std;
class Singleton
{
private:
static bool instanceFlag;
static Singleton *single;
public:
static Singleton* getInstance();
void method();
~Singleton()
{
instanceFlag = false;
}
};
bool Singleton::instanceFlag = false;
Singleton* Singleton::single = NULL;
Singleton* Singleton::getInstance()
{
if(! instanceFlag)
{
single = new Singleton();
instanceFlag = true;
return single;
}
else
{
return single;
}
}
void Singleton::method()
{
cout << "Method of the singleton class";
}
int main()
{
Singleton *sc1,*sc2;
sc1 = Singleton::getInstance();
sc1->method();
sc2=Singleton::getInstance();
sc2->method();
return 0;
}
Это правильный способ сделать класс singleton ??
есть много примеров: http://stackoverflow.com/questions/1008019/c-singleton-design-pattern?rq=1 – EdChum
related/dupe: http://stackoverflow.com/questions/1008019/c -singleton-design-pattern – NathanOliver
Прежде всего, конструктор должен быть закрытым, иначе вы не заставляете пользователей называть 'getInstance' – EdChum