최고의 C ++ 스토리지 클래스 튜토리얼 2024년, 이 튜토리얼에서는 자동 저장 클래스,스토리지 클래스를 등록,정적 스토리지 클래스,통근 스토리지 클래스,변경 가능한 스토리지 클래스,를 배울 수 있습니다.
스토리지 클래스는 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 멤버 함수에 의해 변경 될 수있다.