logo

C++ 정적

C++에서 static은 인스턴스가 아닌 유형에 속하는 키워드 또는 수정자입니다. 따라서 정적 멤버에 액세스하는 데 인스턴스가 필요하지 않습니다. C++에서 정적은 필드, 메서드, 생성자, 클래스, 속성, 연산자 및 이벤트일 수 있습니다.


C++ 정적 키워드의 장점

메모리 효율성: 이제 정적 멤버에 액세스하기 위해 인스턴스를 생성할 필요가 없으므로 메모리가 절약됩니다. 게다가 타입에 속하기 때문에 인스턴스가 생성될 때마다 메모리를 얻지 못합니다.


C++ 정적 필드

정적으로 선언된 필드를 정적 필드라고 합니다. 객체를 생성할 때마다 메모리를 가져오는 인스턴스 필드와 달리 메모리에는 정적 필드의 복사본이 하나만 생성됩니다. 모든 객체에 공유됩니다.

자바 맵 예제

Account의 경우 rateOfInterest, Employee의 경우 companyName 등 모든 개체의 공통 속성을 참조하는 데 사용됩니다.


C++ 정적 필드 예

C++에서 정적 필드의 간단한 예를 살펴보겠습니다.

상위 10 헨타이
 #include using namespace std; class Account { public: int accno; //data member (also instance variable) string name; //data member(also instance variable) static float rateOfInterest; Account(int accno, string name) { this-&gt;accno = accno; this-&gt;name = name; } void display() { cout&lt; <accno<< '<<name<< ' '<<rateofinterest<<endl; } }; float account::rateofinterest="6.5;" int main(void) { account a1="Account(201," 'sanjay'); creating an object of employee a2="Account(202," 'nakul'); a1.display(); a2.display(); return 0; < pre> <p>Output:</p> <pre> 201 Sanjay 6.5 202 Nakul 6.5 </pre> <hr> <h2>C++ static field example: Counting Objects</h2> <p>Let&apos;s see another example of static keyword in C++ which counts the objects.</p> <pre> #include using namespace std; class Account { public: int accno; //data member (also instance variable) string name; static int count; Account(int accno, string name) { this-&gt;accno = accno; this-&gt;name = name; count++; } void display() { cout&lt; <accno<<' '<<name<<endl; } }; int account::count="0;" main(void) { account a1="Account(201," 'sanjay'); creating an object of a2="Account(202," 'nakul'); a3="Account(203," 'ranjana'); a1.display(); a2.display(); a3.display(); cout<<'total objects are: '< <account::count; return 0; < pre> <p>Output:</p> <pre> 201 Sanjay 202 Nakul 203 Ranjana Total Objects are: 3 </pre></accno<<'></pre></accno<<>

C++ 정적 필드 예: 개체 계산

개체 수를 계산하는 C++의 정적 키워드의 또 다른 예를 살펴보겠습니다.

 #include using namespace std; class Account { public: int accno; //data member (also instance variable) string name; static int count; Account(int accno, string name) { this-&gt;accno = accno; this-&gt;name = name; count++; } void display() { cout&lt; <accno<<\' \'<<name<<endl; } }; int account::count="0;" main(void) { account a1="Account(201," \'sanjay\'); creating an object of a2="Account(202," \'nakul\'); a3="Account(203," \'ranjana\'); a1.display(); a2.display(); a3.display(); cout<<\'total objects are: \'< <account::count; return 0; < pre> <p>Output:</p> <pre> 201 Sanjay 202 Nakul 203 Ranjana Total Objects are: 3 </pre></accno<<\'>