싱글톤 사용하기

2015. 4. 21. 07:21프로그래밍/Design Patterns

728x90
728x90
싱글톤 템플릿 버전
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once
//< 복사 생성자 금지 매크로
#define COPYPREVENT(T)\
    T(const T& R); \
    T& operator = (const T& R);
 
//< 싱글톤 매크로
#define SINGLETON(T)\
    COPYPREVENT(T)\
    friend MH_Singleton<T>
 
template <typename T>
class MH_Singleton
{
private:
    MH_Singleton(void) { }
    virtual ~MH_Singleton(void) { }
 
    //< 복사생성자
    MH_Singleton(const MH_Singleton& rhw);
    //< 대입 연산자
    MH_Singleton& operator = (const MH_Singleton& rhw);
 
public:
    //< 객체 생성
    static T* getInstance(void)
    {
        static T inst;
        return &inst;
    }
};
cs

싱글톤 사용할 객체에서 싱글톤 선언
1
SINGLETON(CollisionMgr);
cs

private 영역에 선언해준다.

메인에서 사용하기

매크로 사용하기

만들어 놓은 싱글톤 매크로로 선언.

여기서 ;를 안 붙이는걸 유의.. 이거 때문에 식겁

1
#define COLLISIONMGR MH_Singleton<CollisionMgr>::getInstance()
cs



메인에서 사용

1
COLLISIONMGR->isCollisionPointAndRect(rect1, p1);
cs


728x90
반응형

'프로그래밍 > Design Patterns' 카테고리의 다른 글

[Design Pattern] 싱글톤  (2) 2016.02.15
[Design Pattern] 팩토리 패턴  (2) 2016.01.30
디자인 패턴 연관도  (1) 2015.07.08
중재자 패턴  (2) 2015.05.04
[Design Pattern] 옵저버 패턴 개요  (0) 2015.04.18
디자인 패턴, 싱글톤, 상태패턴  (2) 2015.04.15