Singleton
main:
#include
#include "Singleton.h"
using namespace
std;
int main(void)
{
cout<<"Main() Starting!!!"< cout<<"First call"<
CSingleton::GetInstance().DoSomething();
cout<<"Second call"< CSingleton::GetInstance().DoSomething();
cout<<"Main()
Ending!!!"< system("pause");
return 0;
}
Singleton.h:
class CSingleton
{
public:
static
CSingleton& GetInstance();
void DoSomething();
protected:
CSingleton();
static CSingleton ms_sof;
};
Singleton.cpp
#include
#include "Singleton.h"
using namespace std;
CSingleton::CSingleton()
{
cout<<"Singleton
Construction!!!!"<}
CSingleton&
CSingleton::GetInstance()
{
cout<<"Entering
CSingleton::GetInstance"< CSingleton ms_sof;
cout<<"Leaving CSingleton::GetInstance"< return
ms_sof;
}
void CSingleton::DoSomething()
{
cout<<"Doing something!!"<}
#include
#include "Singleton.h"
using namespace
std;
int main(void)
{
cout<<"Main() Starting!!!"<
CSingleton::GetInstance().DoSomething();
cout<<"Second call"<
cout<<"Main()
Ending!!!"<
return 0;
}
Singleton.h:
class CSingleton
{
public:
static
CSingleton& GetInstance();
void DoSomething();
protected:
CSingleton();
static CSingleton ms_sof;
};
Singleton.cpp
#include
#include "Singleton.h"
using namespace std;
CSingleton::CSingleton()
{
cout<<"Singleton
Construction!!!!"<
CSingleton&
CSingleton::GetInstance()
{
cout<<"Entering
CSingleton::GetInstance"<
cout<<"Leaving CSingleton::GetInstance"<
ms_sof;
}
void CSingleton::DoSomething()
{
cout<<"Doing something!!"<