Les paso el código del Singleton en C++:
// --------------------------------------------------------------------
// main.cpp
int main()
{
CSingleton * myFirstSingleton = 0;
CSingleton * mySecondSingleton = 0;
myFirstSingleton->instance();
myFirstSingleton->instance();
if (myFirstSingleton == mySecondSingleton)
{
std::cout << "It's the same instance!\n"; } return 0; }
// --------------------------------------------------------------------
// singleton.h
#ifndef CSINGLETON_DEF
#define CSINGLETON_DEF
class CSingleton {
private:
static CSingleton * m_instance;
protected:
CSingleton();
public:
static CSingleton * instance();
};
#endif
// --------------------------------------------------------------------
// singleton.cpp
#ifndef CSINGLETON_IMP
#define CSINGLETON_IMP
#include "singleton.h"
CSingleton * CSingleton::m_instance = 0;
CSingleton::CSingleton()
{
}
CSingleton * CSingleton::instance()
{
if (m_instance == 0)
{
m_instance = new CSingleton;
}
return m_instance;
}
#endif
// --------------------------------------------------------------------
// main.cpp
#include <iostream>
#include "singleton.h"
int main()
{
CSingleton * myFirstSingleton = 0;
CSingleton * mySecondSingleton = 0;
myFirstSingleton->instance();
myFirstSingleton->instance();
if (myFirstSingleton == mySecondSingleton)
{
std::cout << "It's the same instance!\n"; } return 0; }
// --------------------------------------------------------------------
// singleton.h
#ifndef CSINGLETON_DEF
#define CSINGLETON_DEF
class CSingleton {
private:
static CSingleton * m_instance;
protected:
CSingleton();
public:
static CSingleton * instance();
};
#endif
// --------------------------------------------------------------------
// singleton.cpp
#ifndef CSINGLETON_IMP
#define CSINGLETON_IMP
#include "singleton.h"
CSingleton * CSingleton::m_instance = 0;
CSingleton::CSingleton()
{
}
CSingleton * CSingleton::instance()
{
if (m_instance == 0)
{
m_instance = new CSingleton;
}
return m_instance;
}
#endif
0 Comments:
Post a Comment
<< Home