Salve a tutti .. sto esercitandomi su template .. classi etc ..

provando a fare un semplice caso di template di classe con tipo paramentrico e tipo non paramentrico riscontro un errore che da debug risulta essere nell'distruttore

il codice e` il seguente

codice:
 

#include<iostream>
#include<iomanip>
#include<cstdlib>


using namespace std;



template< typename T , int N >

class Array{

public:
		Array( float = 0.0 );
		~Array();
		void initialize( float );
//		void setArray(N);

private:
		T* arrayPtr ;
		int size ;

};

template<typename T, int N>
Array<T,N>::Array( float value)
	: size( N > 0 ? N : 1 ),
      arrayPtr( new T[size] )
{
		initialize( value );	
}

template<typename T, int N>
Array<T,N>::~Array()
{
	delete[] arrayPtr;

}


template<typename T, int N>
void Array<T,N>::initialize( float v )
{

	for(int i=0 ; i < size ; i++) arrayPtr[i] = v ;

}



int main(){

		Array<float , 100 > A(0.2) ;
		system("echo 'pause'");


return 0 ;
}