Latest web development tutorials

C ++ 스토리지 클래스

스토리지 클래스는 C ++ 프로그램 변수 / 함수 범위 (가시성) 및 수명주기를 정의합니다. 그들이 유형을 수정하기 전에이 지정자는 배치. 아래에 나열된 스토리지 클래스 C ++ 프로그램을 사용할 수 있습니다 :

  • 자동
  • 레지스터
  • 정적 인
  • 통근자
  • 변하기 쉬운

자동 저장 클래스

자동 스토리지 클래스는 모든 지역 변수의 기본 저장 클래스입니다.

{
   int mount;
   auto int month;
}

위의 예는 동일한 스토리지 클래스 두 변수가 자동으로 만, 즉 자동 로컬 변수를 수정, 함수 내에서 사용할 수있는 정의합니다.

스토리지 클래스를 등록

등록 저장소 클래스 대신 지역 변수의 RAM 레지스터에 저장 정의하는 데 사용됩니다.이 변수의 최대 크기는 레지스터 (일반적으로 단어)의 크기와 동일하고 (이것은 어떤 메모리 장소가 없기 때문에) 그 단항 '&'연산자 적용 할 수 없다는 것을 의미한다.

{
   register int  miles;
}

그러한 카운터 등의 변수에 빠르게 액세스 등록이 필요. 또한, '등록'의 정의가 변수 레지스터에 저장되는 것을 의미하지는 않으며,이 변수는 하드웨어 구현의 제한에 따라, 레지스터에 저장 될 수 있다는 것을 의미하는 것이 주목되어야한다.

정적 스토리지 클래스

정적 스토리지 클래스는 당신이 범위를 벗어나 이동 생성 및 파괴 될 때마다 입력 할 필요없이, 프로그램의 수명주기에서 지역 변수의 존재를 유지하기 위해 컴파일러에 지시합니다.따라서, 정적 로컬 변수를 사용하는 함수 호출과 로컬 변수의 값을 유지하도록 변형 될 수있다.

정적 개질제는 전역 변수에 적용될 수있다. 정적 전역 변수를 수정 한 경우, 변수는 파일 명령문의 범위를 제한한다.

C ++에서 정적 클래스 데이터 멤버에 사용되는 경우 모든 개체는 구성원이 공유하는 클래스의 하나의 복사본 만 발생합니다.

#include <iostream>
 
// 函数声明 
void func(void);
 
static int count = 10; /* 全局变量 */
 
int main()
{
    while(count--)
    {
       func();
    }
    return 0;
}
// 函数定义
void func( void )
{
    static int i = 5; // 局部静态变量
    i++;
    std::cout << "变量 i 为 " << i ;
    std::cout << " , 变量 count 为 " << count << std::endl;
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

变量 i 为 6 , 变量 count 为 9
变量 i 为 7 , 变量 count 为 8
变量 i 为 8 , 变量 count 为 7
变量 i 为 9 , 变量 count 为 6
变量 i 为 10 , 变量 count 为 5
变量 i 为 11 , 变量 count 为 4
变量 i 为 12 , 变量 count 为 3
变量 i 为 13 , 变量 count 为 2
变量 i 为 14 , 变量 count 为 1
变量 i 为 15 , 变量 count 为 0

통근 스토리지 클래스

통근 스토리지 클래스는 전역 변수에 대한 참조를 제공하는 데 사용되는 모든 프로그램 파일의 전역 변수를 표시한다.당신이 변수를 초기화 할 수 없습니다 '통근'를 사용하면 변수 이름은 이전에 정의 된 저장 위치를 ​​가리 킵니다.

여러 문서가 다른 문서에서 사용할 수있는 전역 변수 또는 함수를 정의 할 때, 당신은 변수 나 함수 정의 참조를 얻기 위해 다른 파일에서통근을사용할 수 있습니다. 이는 통근 다른 파일에서 전역 변수 또는 함수를 선언하는 데사용되는, 이해수있다.

통근 수정은 일반적으로 다음과 같이 두 개 이상의 파일이 동일한 전역 변수 또는 시간의 기능을 공유하고있을 때 사용된다 :

첫 번째 파일 : MAIN.CPP

#include <iostream>
 
int count ;
extern void write_extern();
 
int main()
{
   count = 5;
   write_extern();
}

두 번째 파일 :에 support.cpp

#include <iostream>
 
extern int count;
 
void write_extern(void)
{
   std::cout << "Count is " << count << std::endl;
}

여기서, 제 2 파일통근 키워드는의파일 MAIN.CPP에 정의 된 첫 번째 수를 선언하는 데 사용됩니다. 다음과 같이 이제 두 파일을 컴파일 :

$ g++ main.cpp support.cpp -o write

이것은 다음과 같은 결과를 얻을수, 실행 가능한 프로그램이 기록을수행하려고물품생성

$ ./write
Count is 5

변경 가능한 스토리지 클래스

가변 지정자 설명이 튜토리얼의 마지막에있을 것입니다 개체 클래스에만 적용됩니다.그것은 개체 대체 상수의 구성원 수 있습니다. 즉, 가변 부재 const 멤버 함수에 의해 변경 될 수있다.