En C++, static es una palabra clave o modificador que pertenece al tipo, no a la instancia. Por lo tanto, no se requiere instancia para acceder a los miembros estáticos. En C++, estático puede ser campo, método, constructor, clase, propiedades, operador y evento.
Ventaja de la palabra clave estática de C++
Memoria eficiente: Ahora no necesitamos crear una instancia para acceder a los miembros estáticos, por lo que ahorra memoria. Además, pertenece al tipo, por lo que no obtendrá memoria cada vez que se cree la instancia.
Campo estático de C++
Un campo declarado como estático se denomina campo estático. A diferencia del campo de instancia que obtiene memoria cada vez que se crea un objeto, solo se crea una copia del campo estático en la memoria. Se comparte con todos los objetos.
broma
Se utiliza para hacer referencia a la propiedad común de todos los objetos, como rateOfInterest en el caso de Cuenta, companyName en el caso de Empleado, etc.
Ejemplo de campo estático de C++
Veamos el ejemplo simple de campo estático en C++.
bash mientras bucle
#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<<>
Ejemplo de campo estático de C++: contar objetos
Veamos otro ejemplo de palabra clave estática en C++ que cuenta los objetos.
#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<<\'>