2011-12-28 2 views
0
class A 
{ 
    static const A a; 
} 

우리는 왜 이것을 할 수 있습니까?왜 같은 클래스 안에 클래스의 정적 객체를 선언 할 수 있습니까?

+0

어떻게 될 것이라고 생각하십니까? – SLaks

+0

끝내는 재귀가 없다고 가정 할 때 A가 템플릿 클래스 인 경우'static' 키워드 없이는 이런 일을 할 수 있다고 생각합니다. '템플릿 클래스 A {A a;};'와 같은 것으로, 전문화되어 있습니다. 그러나 내가 그것을 원할 것 같으면서, 또는 가능하다 할지라도 그것이 합리적으로 가능할지라도 .......... – Damon

+1

@Damon : A 은 A 과 완전히 다른 유형입니다. 샘플은 'class A {B b;};'와 같이 쓸 수 있습니다. 그리고 확실히 C++에서 가능합니다. –

답변

4

static 회원에는 단 하나의 값만 있습니다. 그것은 본질적으로 클래스 선언에 적용되는 전역 변수입니다.

비 -구성원은 각 클래스 인스턴스에 나타나는 값입니다.
무한한 양의 메모리를 소비하기 때문에 클래스 자체를 직접 포함하는 것은 의미가 없습니다.

포인터가 필요할 수 있습니다.

관련 문제