C++ | Plantillas | Pregunta 6

Salida del siguiente programa? Suponga que el tamaño de int es de 4 bytes y el tamaño de double es de 8 bytes, y el compilador no realiza ninguna alineación.

#include<iostream>
#include<stdlib.h>
using namespace std;
  
template<class T, class U, class V=double>
class A  {
    T x;
    U y;
    V z;
    static int count;
};
  
int main()
{
   A<int, int> a;
   A<double, double> b;
   cout << sizeof(a) << endl;
   cout << sizeof(b) << endl;
   return 0;
}

(A)

16
24

(B)

8
16

(C)

20
28

(D) Error del compilador: los parámetros de la plantilla no pueden tener valores predeterminados.

Respuesta: (A)
Explicación: las plantillas también pueden tener parámetros predeterminados. La regla es la misma, todos los valores predeterminados deben estar en el extremo derecho.

Dado que count es estático, no se cuenta en sizeof.
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 *