2012-04-23 3 views

답변

0

이러한 코드는 싱글 톤 패턴의 구현에 사용될 수 있습니다. 여기서 유형 a의 인스턴스 하나가 선언됩니다. 다른 인스턴스가 어떻게 든 금지되면, 그것은 싱글 톤입니다. 그러나 실제로는 혼동스럽지 않은 구문을 사용합니다.

a::b에 대해서는 유용하지 않습니다. 인스턴스 이름 만 보여줍니다. 보다 유용한 예제는 다음과 같습니다.

struct a 
{ 
    static struct a b; 
    int data; 
}; 

a a::b = {9}; 

int main() 
{ 
    int stuff = a::b.data; 
    printf("%d\n", stuff); 

    return 0; 
} 
+0

인스턴스화 할 수있는 인스턴스의 수가 1로 제한되는 클래스를 싱글 톤 클래스라고합니다. 따라서 주어진 시간에 오직 하나의 인스턴스 만 존재할 수 있습니다. 정적 메소드를 통해 구현할 수 있습니다. 나는 자신의 클래스의 정적 객체를 만드는 것이 어떻게 도움이되는지 이해하지 못한다. – CppLearner

+0

@CppLearner'a :: b'의 정의는 링커에 의해 미리 정의 된 주소에 놓일 수있다. 이것은 하드웨어에 대한 메모리 매핑 된 접근과 관련이있다.) – anatolyg

+0

고마워, 나는 당신의 설명을 확인하는 [link] http://stackoverflow.com/questions/2593324/c-singleton-class의 코드를 보았다. 'class MySingleton { public : static MySingleton & getInstance() { 정적 MySingleton 인스턴스; return instance; } 개인 : MySingleton(); ~ MySingleton(); }; – CppLearner

관련 문제