본문 바로가기

STUDY/C++

Class내에서의 Static

정적(Static)멤버변수는 '객체(Class Instance)가 소유하지않는(범주에 속하지 않는) 멤버이다. 


class A

{

public:

int x; 

}


일반적인 멤버변수는 객체(Class Instance)가 생성될 때마다 독립적으로 생성된다. 

하지만 


class A

{

public:

static int x; 

}


위와 같이 멤버에 static을 붙여 정적변수로 생성하면 해당 클래스에 하나만 생성되고 모든 객체에서 공동으로 접근할 수 있다.

마찬가지로 정적 함수도 클래스에 하나만 생성되며 공동으로 접근 가능하다. 


* 정적멤버들도 접근지정자(public, protected, private)를 붙일 수 있다.


* 정적 변수는 Class당 1개만 생성되므로 클래스 내부에서 초기화가 불가능하고, 클래스 외부에서 전역변수처럼 초기화해야한다.


int A::x = 0;


* 정적 함수는 정적 변수만 호출 가능하다.


>예제