본문 바로가기
c++

static 키워드 (cpp, java)

by kcj3054 2021. 10. 23.
  • static 키워드
    • 범위의 제한을 받는 전역 변수 (접근할 수 있는 영역을 제한한 전역변수 )
    • 파일속, 클래스속, 함수속
  • 함수 속 정적 변수
  • 함수로 범위가 제한된 변수
void Accumulate(int number) {

    static int result = 0;  // 2번 , 1번 후 2번에서 초기화를 했으니 5번후에는 초기화를 하지 않는다
    result += number;  // 3번  6번

    cout << "result : " << result << endl; //4번

}

int main() {


    Accumulate(10);  // 10 , 1번
    Accumulate(20); //5번
    return 0;
}
  • 정적 맴버 변수
    • 함수안에서 정적 변ㄴ수 넣지 말 것
    • 클래스 안에 넣을것 (oop)
    • 전역변수 대신 정적 맴버변수를 쓸 것 (범위를 제한하기 위해서 )
class Cat
{
public:
    Cat(int age, const string & name);

private:
    static int mCount;
};

int Cat::mCount = 0;  //컴파일할때 초기화하는 것 

Cat::Cat(int age, const string & name)
{
    mCount++;
}

int main() {
    Cat * myCat = new Cat(2, "coco");
    Cat *yourCat = new Cat(5, "momo");
    Cat *hisCat = new Cat(3, "mo");
    Cat *herCat= new Cat(5, "omo");

    cout << myCat << endl;
    return 0;
}

'c++' 카테고리의 다른 글

오버로딩 된 new,  (0) 2022.04.09
참조 vs 포인터  (0) 2022.01.02
cpp transform  (0) 2021.12.15
연산자 오보로딩  (0) 2021.10.23
cpp Reference(&)  (0) 2021.08.12