Prediga la salida del siguiente programa C++.
#include <iostream> using namespace std; class Test { static int x; public: Test() { x++; } static int getX() {return x;} }; int Test::x = 0; int main() { cout << Test::getX() << " "; Test t[5]; cout << Test::getX(); }
(A) 0 0
(B) 5 5
(C) 0 5
(D) Error del compilador
Respuesta: (C)
Explicación: Las funciones estáticas se pueden llamar sin ningún objeto. Así que la llamada “Prueba::getX()” está bien.
Dado que x se inicializa como 0, la primera llamada a getX() devuelve 0. Tenga en cuenta la declaración x++ en el constructor. Cuando se crea una array de 5 objetos, el constructor se llama 5 veces. Entonces x se incrementa a 5 antes de la siguiente llamada a getX().
Cuestionario de esta pregunta
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