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