Die Ausgabe des folgenden Codes ist 16. Warum so? sogar ohne Initialisierung mit der Länge des Arrays der Klasse ist die Größe 16 und mit der Initialisierung der Länge mit dem zweiten Konstruktor ist es die gleiche Größe, d.h. 16. Jede Erklärung?Größe der Vorlagenklasse
#include <iostream>
#include <string>
using namespace std;
template <class T>
class array1{
T * arr;
int l;
public:
array1(){
arr = 0; l=0;
}
array1(int x){
l = x;
arr = new T[l];
}
~array1(){
delete[] arr;
}
void display(){
cout << "array1 is :"<<endl;
for (int i=0; i<l; i++)
cout << arr[i] << " ";
cout << endl;
}
};
int main()
{
array1<int> a1;
cout << "size of int arr is " << sizeof(a1);
return 0;
}
Das hat nichts mit Vorlagen zu tun, Sie werden das gleiche mit einer normalen Klasse bekommen. – Mat
Können Sie uns Ihre Annahmen mitteilen, warum es etwas anderes als 16 sein sollte? –
Was hast du erwartet? –