C언어에서의 static 개념
1. 전역변수에 선언된 static의 의미
-선언된 파일 내에서만 참조를 허용하겠다는 의미
2. 함수 내에 선언된 static의 의미
-한번만 초기화되고, 함수를 빠져나가도 소멸 안됨
static 멤버 변수(클래스 변수)
-프로그램 시작 시, 메모리 공간에 딱 하나만 할당이 되어서 공유되는 변수
-클래스 안에 작성되어 있지만 staic변수는 객체 외부에 있음
-단지, static변수가 작성되어져 있는 객체에게 멤버변수처럼 접근할 수 있는 권한을 준 것
-똑같은 이름으로 static변수를 선언해도 클래스에 따라 구분이 됨
static멤버변수 예시
-static변수를 생성자에서 초기화하면 안되는 이유는 객체가 생성될 때마다 static변수가 0으로 초기화 되기 때문
static 멤버함수
-선언된 클래스의 모든 객체가 공유함
-public으로 선언되면, 클래스의 이름을 이용해서 호출이 가능
-객체의 외부에 존재함(멤버가 아님)
static 멤버함수 예시
-static 멤버함수 내에서는 static멤버변수, static멤버함수만 호출이 가능
-static멤버함수는 객체의 멤버로 존재하지 않기 때문, 객체 생성 이전에도 static멤버함수는 호출이 가능(객체가 생성되지 않았기 때문에 객체의 멤버변수에 접근하는 것은 말이 안됨)
const static 멤버
-const멤버변수(상수)의 초기화는 intializer를 통해야 했지만,
const static으로 선언되는 멤버변수(상수)는 다음과 같이 선언과 동시에 초기화가 가능
mutable
-const함수 내에서의 값의 변경을 예외적으로 허용
-제한적으로 예외적인 경우에 사용해야함
'Programming Language > C++' 카테고리의 다른 글
07-2 상속의 문법 (0) | 2019.07.16 |
---|---|
07-1 상속의 필요성 (0) | 2019.07.16 |
06-2 클래스와 함수에 대한 friend 선언 (0) | 2019.07.15 |
06-1 const 개념 (0) | 2019.07.15 |
16-6 dynamic_cast와 static_cast 차이 (0) | 2019.06.27 |