c++模板类与模板函数的特化有关问题

c++模板类与模板函数的特化问题
我在.h文件里声明和定义了模板类:

using namespace std;
template <typename T>
class Test
{
private:
T max;
T address;
public:
T maxn(T arr[],int i);
};

template <typename T>
T Test<typename T>::maxn(T arr[],int i)
{
for(int j=0;j<i;j++)
{
arr[j]>arr[j+1]?max=arr[j]:max=arr[j+1];
}
cout<<max<<"ok";
return max;
}

//类的特化
template <>
class Test<char*>
{
private:
char* max;
char* address;
public:
char* maxn(char* arr[],int i);

};

template <typename char*>
char*  Test<typename char*>::maxn(char* arr[],int i)
{
for(int j=0;j<i;j++)
{
(*arr[j]).size>(*arr[j+1]).size?adress=arr[j]:address=arr[j+1];
}
cout<<address<<"it is ok";
return address;
};

我在.cpp文件调用来测试模板类和函数:

int arr[6]={1,2,3,4,5,6};
double arr1[4]={6,7,8,9};
char *arr2[5]={"asd","asdf","asdsaf","asdgsdggfhfdh","sdafgahdsfsdljg"};
Test <int> t1;
t1.maxn(arr,6);
Test <double> t2;
t2.maxn(arr1,4);
Test<char*> t3;
t3.maxn(arr2,5);
system("pause");

编译器编译时提示: error C2244: “Test<char*>::maxn”: 无法将函数定义与现有的声明匹配
e:\c++\003\003\806.h(36) : 参见“Test<char*>::maxn”的声明
1>          定义
1>          'char *Test<char*>::maxn(char *[],int)'
1>          现有声明
1>          'char *Test<char*>::maxn(char *[],int)'
,如果我没有特化模板类运行测试都没问题,我模板类特化哪里出错,望指出,谢谢

------解决方案--------------------
特化的时候去掉:
template <>
template <typename char*>