본문 바로가기
기술면접

싱글톤 패턴이란

by 붕어사랑 티스토리 2021. 4. 17.
반응형

싱글톤은 태양, 달 이라고 생각하면 편하다. 이 우주에서 태양과 달은 하나밖에 없고 지구 어디서든 볼 수 있다.

 

즉 클래스를 만들었는데 그 클래스는 딱 하나만 생성되고 어디서든지 접근 가능하게 만들었다고 하자

 

이렇게 클래스를 만드는 기법을 싱글톤 패턴이라고 한다.

 

 

#include<iostream>


class Singleton{
    private:
        static Singleton* instance;
        Singleton(){};
    public:
        static Singleton* getInstance(){
            if(instance == nullptr){
                instance = new Singleton();
            }
            return instance;
        }
};

//static 멤버 변수는 모든 객체가 공유해야 하므로 프로그램 전체 영역에서 메모리 유지가 되야 한다. 
//따라서 반드시 전역 범위에서 정의 및 초기화를 해주어야 한다.
Singleton* Singleton::instance = 0;

int main(){
    Singleton* s = Singleton::getInstance();
    Singleton* r = Singleton::getInstance();

    std::cout<<s<<std::endl;
    std::cout<<r<<std::endl;


    return 0;
}
반응형

댓글