C++ | Plantillas | Pregunta 4

Salida del siguiente programa?

#include <iostream>
using namespace std;
  
template <class T>
class Test
{
private:
    T val;
public:
    static int count;
    Test()  {   count++;   }
};
  
template<class T>
int Test<T>::count = 0;
  
int main()
{
    Test<int> a;
    Test<int> b;
    Test<double> c;
    cout << Test<int>::count   << endl;
    cout << Test<double>::count << endl;
    return 0;
}

(A)

0
0

(B)

1
1

(C)

2
1

(D)

1
0

Respuesta: (C)
Explicación: Hay dos clases creadas por la plantilla: Prueba y Prueba.

Dado que count es un miembro estático, cada clase tiene su propia copia. Además, el conteo se incrementa en el constructor.
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 *