#ifndef ARRAY_H
#define ARRAY_H
template< typename T >
class Array
{
public:
Array(int s);
virtual ~Array();
virtual const T & Entry(int index) const;
virtual void Enter(int index, const T& value);
void Sort();
private:
int size;
T *element;
};
template<typename T> Array<T>::Array (int s)
{
size = (s > 1 ) ? s : 1 ;
element = new T [ size ] ;
}
template < typename T > Array < T > :: ~Array()
{
delete [] element ;
}
template < typename T >
const T& Array < T > :: Entry ( int index ) const
{
return element [ index ] ;
}
template < typename T >
void Array < T > :: Enter(int index, const T& value)
{
element [ index ] = value ;
}
template<typename T>
void Array<T>::Sort()
{
for (int j=this->size - 2; j>=0; j--)
{
for (int i=0; i<=j; ++i)
{
T temp;
if (element[i] > element[i+1])
{
temp = element[i];
element[i] = element[i+1];
element[i+1] = temp;
}
}
}
}
#endif // TEMPLATEARRAY_H
功能还很简单,记得放在头文件中。