c++에서는 멤버 변수나 멤버 함수에 static을 붙일 수 있다
<정의>
클래스안에 정의된 static변수를 클래스 변수라고 한다
<표현>
class A{
static int num=3;
}
<사용법>
Class안에 static 변수를 정의하면 외부에서 사용할 수 있는 방법이 세 가지 있다
1 .num;
2. A::num;
3. 객체를 인스턴스화 했을 때
A obj;
obj.num;
*근데 이 방법은 거의 사용하지 않는다, obj.num문장만 보았을 때 num이 멤버변수인지 클래스변수인지
확실히 모르기 때문!
==================
<유의점>
1.전역변수에 선언된 static의 의미
-선언된 파일 내에서만 참조를 허용하겠다는 의미
2.함수 내에 선언된 static의 의미
-한번만 초기화되고, 지역변수와 달리 함수를 빠져나가도 소멸되지 않음
3.static변수를 생성자 안에 넣을 수 있지만 객체가 생성될 때마다 초기화되기 때문에
제대로 초기화하려면 static변수가 선언된 class의 밖에서 초기화해야한다
ex)
class A{
}
'Programming Language > C++' 카테고리의 다른 글
09-1 멤버함수와 가상함수의 동작원리 (0) | 2019.01.31 |
---|---|
08-3 가상 소멸자와 참조자의 참조 가능성 (0) | 2019.01.29 |
08-2 가상함수 (0) | 2019.01.29 |
08-1 객체 포인터의 참조관계 (0) | 2019.01.15 |
07-4 상속을 위한 조건 (0) | 2018.01.22 |