C 언어
스토리지 클래스는 C++ 프로그램 내에서 변수 및/또는 함수의 범위(가시성)와 수명을 정의합니다. 이러한 지정자는 수정하는 형식 앞에 옵니다. C++ 프로그램에서 사용할 수 있는 다음과 같은 스토리지 클래스가 있습니다.
자동 스토리지 클래스는 모든 로컬 변수에 대한 기본 스토리지 클래스입니다.
{ int mount; auto int month; }
위의 예는 동일한 스토리지 클래스를 가진 두 개의 변수를 정의합니다. auto는 함수 내에서만 사용할 수 있습니다. 즉, 로컬 변수입니다.
등록 스토리지 클래스는 RAM 대신 레지스터에 저장해야 하는 로컬 변수를 정의하는 데 사용됩니다. 이는 변수의 최대 크기가 레지스터 크기(보통 한 단어)와 같으며 단항 '&' 연산자를 적용할 수 없음을 의미합니다(메모리 위치가 없기 때문에).
{ register int miles; }
레지스터는 카운터와 같이 빠른 액세스가 필요한 변수에만 사용해야 합니다. 또한 '레지스터'를 정의한다고 해서 변수가 레지스터에 저장되는 것은 아닙니다. 이는 하드웨어 및 구현 제한 사항에 따라 레지스터에 저장될 수 있음을 의미합니다.
정적 스토리지 클래스는 범위에 들어오고 나갈 때마다 지역 변수를 생성하고 소멸시키는 대신 프로그램의 수명 동안 지역 변수를 유지하도록 컴파일러에 지시합니다. 따라서 지역 변수를 정적으로 만들면 함수 호출 간에 값을 유지할 수 있습니다.
정적 수정자는 전역 변수에도 적용될 수 있습니다. 이 작업이 완료되면 해당 변수의 범위가 선언된 파일로 제한됩니다.
C++에서 static이 클래스 데이터 멤버에 사용되면 해당 클래스의 모든 개체에서 해당 멤버의 복사본 하나만 공유하게 됩니다.
라이브 데모#include <iostream> // Function declaration void func(void); static int count = 10; /* Global variable */ main() { while(count--) { func(); } return 0; } // Function definition void func( void ) { static int i = 5; // local static variable i++; std::cout << "i is " << i ; std::cout << " and count is " << count << std::endl; }
위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다. -
i is 6 and count is 9 i is 7 and count is 8 i is 8 and count is 7 i is 9 and count is 6 i is 10 and count is 5 i is 11 and count is 4 i is 12 and count is 3 i is 13 and count is 2 i is 14 and count is 1 i is 15 and count is 0
외부 스토리지 클래스는 모든 프로그램 파일에서 볼 수 있는 전역 변수에 대한 참조를 제공하는 데 사용됩니다. 'extern'을 사용하면 변수를 초기화할 수 없습니다. 변수 이름이 이전에 정의된 저장 위치를 가리키기만 하면 됩니다.
여러 파일이 있고 다른 파일에서도 사용될 전역 변수 또는 함수를 정의하는 경우 extern 정의된 변수 또는 함수의 참조를 제공하기 위해 다른 파일에서 사용됩니다. extern 이해를 위해 다른 파일에서 전역 변수 또는 함수를 선언하는 데 사용됩니다.
extern 수정자는 아래에 설명된 것과 같이 동일한 전역 변수 또는 함수를 공유하는 두 개 이상의 파일이 있을 때 가장 일반적으로 사용됩니다.
#include <iostream> int count ; extern void write_extern(); main() { count = 5; write_extern(); }
#include <iostream> extern int count; void write_extern(void) { std::cout << "Count is " << count << std::endl; }
여기, extern 키워드가 다른 파일에서 count를 선언하는 데 사용되고 있습니다. 이제 이 두 파일을 다음과 같이 컴파일하십시오 -
$g++ main.cpp support.cpp -o write
그러면 쓰기가 생성됩니다. 실행 가능한 프로그램, write 실행 시도 다음과 같이 결과를 확인하십시오 -
$./write 5
변경 가능 지정자는 이 자습서의 뒷부분에서 설명하는 클래스 개체에만 적용됩니다. 객체의 멤버가 const 멤버 함수를 재정의할 수 있도록 합니다. 즉, 가변 멤버는 const 멤버 함수로 수정할 수 있습니다.
C 언어
이 장에서는 Java의 내부 클래스에 대해 설명합니다. 중첩 클래스 Java에서 메소드와 마찬가지로 클래스의 변수도 다른 클래스를 멤버로 가질 수 있습니다. 다른 클래스 내에 클래스를 작성하는 것은 Java에서 허용됩니다. 내부에 작성된 클래스를 중첩 클래스라고 합니다. , 내부 클래스를 보유하는 클래스를 외부 클래스라고 합니다. . 구문 다음은 중첩 클래스를 작성하는 구문입니다. 여기에서 Outer_Demo 클래스 외부 클래스이고 Inner_Demo 클래스입니다. 중첩 클래스입니다. class Outer_Demo {
소방서는 미국에서만 매년 백만 건 이상의 화재에 대응합니다. 그리고 그 숫자는 1970년대 이후 꾸준히 감소하고 있지만 화재는 여전히 발생할 때마다 극도로 위험한 상황의 가능성을 제시합니다. 그러나 그것들은 모두 타지만 모든 불이 같은 것은 아닙니다. 화재를 분류하고 진화하는 방법을 위해 소방 전문가들은 화재를 분류하는 시스템을 개발했습니다. 화재 등급은 무엇을 설명합니까? 화재 등급은 가장 좋은 소화 또는 진압 방법을 포함하여 다른 공통 기능과 함께 존재하는 연료 소스를 설명합니다. 정밀 가공과 같이 화재 위험이 높은 산업에서