=============================================

/*

file : csingleton.h

description : 클래스 헤더

*/

 

class CSingleton
{
private:
        CSingleton(){};    // 생성자를 private에 넣는다.
        int i;
        static CSingleton* inst;

public:
        ~CSingleton(){};
        static CSingleton * GetInst();

 

        //member function
        void init(void);
        void plus(void);
        void minus(void);
        void print(void);
};

=============================================

/*

file : csingleton.cpp

description : 클래스 본체(구현)

*/

 

#include "CSingleton.h"
#include <iostream.h>

CSingleton* CSingleton::inst = 0;

CSingleton* CSingleton::GetInst(void)
{
 if( inst == 0)
 {
         inst = new CSingleton;
 }
        return inst;
}

void CSingleton::init(void)
{
        i = 0;
}
void CSingleton::plus(void)
{
        i++;
}

void CSingleton::minus(void)
{
        i--;
}

void CSingleton::print(void)
{
        cout<<i<<'\n';
}

=============================================

/* DESCRIPTION

file : main.cpp

date : 2004. 3. 2.

*/

#include "CSingleton.h"

void add_func(void);

void main()
{
       CSingleton *MySingleton = CSingleton::GetInst();

        MySingleton->init();
        MySingleton->plus();
        MySingleton->plus();

        add_func();

        MySingleton->print();
}

+ Recent posts