2011. 3. 7. 21:35
static 멤버의 특징
1) main 함수가 호출되기도 전에 메모리 공간에 올라가서 초기화 된다. 따라서 public으로 선언이 된다면, 객체 생성 이전에도 접근이 가능하다.
2) 객체의 멤버로 존재하는 것이 아니다. 다만 선언되어 있는 클래스 내에서 직접 접근할 수 있는 권한이 부여된 것이다.



int Person::count=1; //static 멤버 초기화

 #include <iostream>
using std::cout;
using std::cin;
using std::endl;

 

class Person
{
 char name[20];
 int age;
 static int count;

public:
 Person(char* _name, int _age)
 {
  strcpy(name, _name);
  age=_age;
  
cout<<count++<<"번째 Person 객체 생성"<<endl;
 }
 void ShowData()
 {
  cout<<"이름 : "<<name<<endl;
  cout<<"나이 : "<<age<<endl;
 }
};

int Person::count=1; //static 멤버 초기화

int main(void)
{
 Person p1("LEE",13);
 Person p2("JUNG",22);
 return 0;
}



외부에서 static 멤버 접근법 => static 멤버가 public에 선언되어 있을 경우 가능
Person::count
Posted by Triany