c+정적 국부 변수 와 정적 함수 예시

1198 단어 c + +국부 변수
함수 내 에서 변 수 를 정의 합 니 다.프로그램 이 이 문 구 를 실행 할 때마다 이 부분 변수 에 스 택 메모 리 를 할당 합 니 다.그러나 프로그램 이 함수 체 를 종료 하면 서 시스템 은 스 택 메모 리 를 회수 하고 부분 변수 도 효력 을 잃 습 니 다.그러나 때때로 우 리 는 두 번 의 호출 사이 에 변수의 값 을 저장 해 야 한다.일반적인 생각 은 전역 변 수 를 정의 하여 실현 하 는 것 이다.그러나 이렇게 되면 변 수 는 함수 자체 에 속 하지 않 고 함수 의 제어 만 받 지 않 아 프로그램의 유지 에 불편 을 가 져 옵 니 다.정적 부분 변 수 는 이 문 제 를 해결 할 수 있다.정적 부분 변 수 는 스 택 에 저장 하 는 것 이 아니 라 전체 데이터 영역 에 저 장 됩 니 다.매번 값 은 다음 호출 까지 유지 합 니 다.이 변 수 는 전역 데이터 영역 에서 메모 리 를 분배 합 니 다.정적 부분 변 수 는 프로그램 이 이 대상 의 성명 에 실 행 될 때 처음으로 초기 화 됩 니 다.즉,이후 함수 호출 은 초기 화 되 지 않 습 니 다(이 점 은 매우 중요 합 니 다).정적 부분 변 수 는 일반적으로 성명 에서 초기 화 되 며,명시 적 으로 초기 화 되 지 않 으 면 프로그램 에서 자동 으로 0 으로 초기 화 됩 니 다.프로그램 이 끝 날 때 까지 전역 데이터 영역 에 머 물 렀 습 니 다.그러나 그 작용 역 은 국부 작용 역 으로 그 함수 나 문장 블록 이 끝 날 때 그 작용 역 은 이에 따라 끝난다.정적 함 수 는 주로 정적 구성원 에 게 접근 하 는 데 사용 되 며,클래스 의 비정 상 구성원 에 게 직접 접근 할 수 없습니다.정적 구성원 함 수 는 주로 호출 편 의 를 위해 대상 을 만 들 지 않 아 도 호출 할 수 있 습 니 다.예컨대
이 때 MethodB 는 직접 호출 할 수 있 습 니 다.X:MethodB();그리고 MethodA 는 선생님 이 클래스 대상 이 된 후에 야 호출 될 수 있 습 니 다.X x;x.MethodA();

class X
{
public:
    void MethodA();
    static void MethodB();
}

좋은 웹페이지 즐겨찾기