[C++] 정적(static) 변수

Date:     Updated:

카테고리:

태그:

이 글은 C++ 정적(static) 변수를 공부하고 정리한 글입니다

정적(static) 변수

  • 범위(scope)의 제한을 받는 전역 변수

    함수 속 정적 변수

    void Increase()
    {
        static int num = 0;   // 여기 줄은 처음 num값을 초기화해줄때만 호출
        num++;
    }
    
    num = 10;                 // 외부에서는 접근 불가
    
    • 함수 속 정적 변수는 함수 안에서만 접근이 가능하다

    정적 멤버 변수

    // Cat.h
    class Cat
    {
    public :
        Cat();
    private :
        static int mCount;
    };
    
    // Cat.cpp
    int Cat::mCount = 0;
    Cat::Cat()
    {
        mCount++;
    }
    
    • 클래스당 하나의 COPY만 존재
    • 개체의 메모리 레이아웃의 일부가 아님
    • 클래스 메모밀 레이아웃에 포함
    • exe파일 안에 필요한 메모리가 잡혀 있음

      정적 멤버 변수 베스트 프랙티스

      • 함수안에서 정적 변수를 넣지 말 것
        • 클래스 안에 넣을 것
      • 전역변수 대신 정적 멤버변수를 쓸 것
        • 범위를 제한하기 위해
      • C스타일의 정적변수를 쓸 이유가 이제 없음


참조

포큐아카데미 C++ 언매니지드 프로그래밍



💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우 
  언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸

맨 위로 이동하기

Cpp 카테고리 내 다른 글 보러가기

댓글 남기기