1. static이란?
- statiic으로 선언이 되면
우선적으로 스택에 저장을 한다.
- 전역변수의 역할을 해준다. 스택의 특성상 LIFO의 구조를 가지기 때문에 최후에 메모리를
해제한다.
2.static 멤버의 활용
- 최후에 메모리가 할당해제되므로 같은 종류의 클래스를 여러개로 객체화할때 유용하게 쓰인다.
- 생성자를 이용하여 클래스가
static변수를 제어할 경우 객체생성시 마다 접근하므로 특성이 없어짐 ex)
/*21.cpp*/
#include <iostream>
using std::endl;
using std::cout;
class Person
{
/*static 선언 : 역시 멤버접근지정자(private, public, protected) 의 영향을 받는다.*/ static int count;
public:
Person(){
count++;
}
void getCount(){
cout << count << " 명째 사람" << endl;
}
};
/*파일 스코프 안에서 초기화를 해주어야 한다.*/ int Person::count=0;
int main()
{
Person p1;
Person p2;
Person p3;
p3.getCount();
return 0;
}
- 실행결과
3. static 함수?