C++ | Palabra clave estática | Pregunta 1

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *