У C++ static — це ключове слово або модифікатор, який належить до типу, а не до екземпляра. Отже, екземпляр не потрібен для доступу до статичних членів. У C++ статикою може бути поле, метод, конструктор, клас, властивості, оператор і подія.
Перевага статичного ключового слова C++
Ефективна пам'ять: Тепер нам не потрібно створювати екземпляр для доступу до статичних членів, тому це економить пам’ять. Крім того, він належить до типу, тому не отримуватиме пам'ять кожного разу, коли створюється екземпляр.
Статичне поле C++
Поле, яке оголошено як статичне, називається статичним полем. На відміну від поля екземпляра, яке отримує пам’ять кожного разу, коли ви створюєте об’єкт, у пам’яті створюється лише одна копія статичного поля. Він спільний для всіх об’єктів.
stlc
Він використовується для посилання на спільну властивість усіх об’єктів, наприклад rateOfInterest у випадку Account, companyName у випадку Employee тощо.
Приклад статичного поля C++
Давайте розглянемо простий приклад статичного поля в C++.
список релігій
#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->accno = accno; this->name = name; } void display() { cout< <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'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->accno = accno; this->name = name; count++; } void display() { cout< <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->accno = accno; this->name = name; count++; } void display() { cout< <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<<\'>