fullstack

[C++] static 키워드

Language/C++

C언어에서 static 키워드는 지역 변수에 붙여 전역 변수의 특징을 지니게 하는데 사용되었다.

하지만 객체지향에서는 전역 변수, 전역 함수라는 개념이 존재하지 않는다. 따라서 이를 대처하기 위해 static 멤버라는 개념이 등장하였다.

다음은 static 멤버 사용 예이다.


1
2
3
4
5
6
7
8
class AAA
{
    static int count;
public:
    AAA() { cout << count++ << "번째 객체 생성." << endl; }
};
 
int AAA::count = 1;



static 멤버는 main함수가 호출되기도 전에 메모리 공간에 올라가 초기화되므로 public으로 선언이 된다면 객체 생성 이전에도 접근이 가능하다.

또한 객체의 멤버로 존재하는 것이 아니라 선언되어 있는 클래스 내에서 직접 접근할 권한이 부여된 것 뿐이다.


'Language > C++' 카테고리의 다른 글

[C++] mutable 키워드  (0) 2015.12.03
[C++] explicit 키워드  (0) 2015.12.02
[C++] const 키워드  (0) 2015.12.02
[C++] 복사 생성자  (0) 2015.12.02
[C++] friend 선언  (0) 2015.12.02