Requisito previo: variables estáticas , funciones estáticas
Escriba un programa para diseñar una clase que tenga una función miembro estática llamada showcount() que tenga la propiedad de mostrar el número de objetos creados de la clase.
Explicación: En este programa simplemente estamos explicando el enfoque de la función miembro estática. Podemos definir miembros de clase y funciones miembro como estáticas usando la palabra clave estática. Antes de comprender la función de miembro estático, debemos entender el miembro estático. Cuando declaramos un miembro de una clase como estático, significa que no importa cuántos objetos de la clase se creen, solo hay una copia del miembro estático .
Puntos importantes sobre la estática:
- Todos los objetos de la clase comparten un miembro estático, todos los datos estáticos se inicializan a cero cuando se crea el primer objeto, si no hay otra inicialización presente.
- Una función de miembro estático solo puede acceder a miembros de datos estáticos, otras funciones de miembro estático y cualquier otra función desde fuera de la clase.
- Al declarar un miembro de función como estático, lo hacemos independiente de cualquier objeto particular de la clase. Se puede llamar a una función miembro estática incluso si no existen objetos de la clase y se accede a las funciones estáticas usando solo el nombre de la clase y el operador de resolución de alcance::.
- No podemos ponerlo en la definición de clase, pero se puede inicializar fuera de la clase como se hace en el siguiente ejemplo al volver a declarar la variable estática, usando el operador de resolución de alcance::para identificar a qué clase pertenece.
Ejemplos:
Input : Here we are not asking for input from the user Output :count:2 count:3 object number :1 object number :2 object number :3 Input :Here we are not asking for input from the user Output :count:2 count:3 object number :1 object number :2 object number :3
// C++ program to Count the number of objects // using the Static member function #include <iostream> using namespace std; class test { int objNo; static int objCnt; public: test() { objNo = ++objCnt; } ~test() { --objCnt; } void printObjNumber(void) { cout << "object number :" << objNo << "\n"; } static void printObjCount(void) { cout << "count:" << objCnt<< "\n"; } }; int test::objCnt; int main() { test t1, t2; test::printObjCount(); test t3; test::printObjCount(); t1.printObjNumber(); t2.printObjNumber(); t3.printObjNumber(); return 0; }
Producción:
count:2 count:3 object number :1 object number :2 object number :3
Publicación traducida automáticamente
Artículo escrito por prashant dhyani y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA