#include <iostream> using namespace std; class Player { private: int id; static int next_id; public: int getID() { return id; } Player() { id = next_id++; } }; int Player::next_id = 1; int main() { Player p1; Player p2; Player p3; cout << p1.getID() << " "; cout << p2.getID() << " "; cout << p3.getID(); return 0; }
(A) Error del compilador
(B) 1 2 3
(C) 1 1 1
(D) 3 3 3
(E) 0 0 0
Respuesta: (B)
Explicación: si una variable miembro se declara estática, todos los objetos de esa clase tienen acceso a una sola instancia de esa variable. Las variables estáticas a veces se denominan variables de clase, campos de clase o campos de toda la clase porque no pertenecen a un objeto específico; pertenecen a la clase.
En el código anterior, la variable estática next_id se usa para asignar una identificación única a todos los objetos.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA