В C++ static е ключова дума или модификатор, който принадлежи към типа, а не към екземпляра. Така че екземплярът не е необходим за достъп до статичните членове. В C++ статиката може да бъде поле, метод, конструктор, клас, свойства, оператор и събитие.
Предимство на C++ статичната ключова дума
Ефективна памет: Сега не е необходимо да създаваме екземпляр за достъп до статичните членове, така че спестява памет. Освен това той принадлежи към типа, така че няма да получава памет всеки път, когато се създава екземпляр.
Статично поле на C++
Поле, което е декларирано като статично, се нарича статично поле. За разлика от полето за екземпляр, което получава памет всеки път, когато създавате обект, има само едно копие на статично поле, създадено в паметта. Той е споделен за всички обекти.
дата преобразува в низ
Използва се за препращане към общото свойство на всички обекти, като rateOfInterest в случай на Account, companyName в случай на Employee и т.н.
Пример за статично поле на C++
Нека видим простия пример за статично поле в C++.
низ java
#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<<\'>