0
我有一個test.hpp模版類定義如何專門化模板化類的成員函數?
///////////////////////////////////////////////
class point1 {
public:
int z0;
point1(): z0(1)
{}
};
///////////////////////////////////////////////
class point2 {
public:
int z1;
point2(): z1(2)
{}
};
///////////////////////////////////////////////
template <class T>
class line {
public:
T p1;
void printPoint(void);
};
,並實現文件TEST.CPP我試圖專注班線的printPoint功能
///////////////////////////////////////////////
template<>
void line<point1>::printPoint(void)
{
cout<<p1.z0<<endl;
}
template <class T>
void line<T>::printPoint(void)
{
cout<<p1.z1<<endl;
}
//////////////////////////////////////
和主要功能是在testmain .cpp
int main()
{
line<point1> r1;
line<point2> r2;
r1.printPoint();
r2.printPoint();
int abc;
cin>>abc;
return 0;
}
但鏈接器拋出錯誤,printPoint函數被多次定義。 如果不是如何專門化模板化類的成員函數,它是成員函數專業化的正確方法嗎?請幫忙。
@StoryTeller我不同意。 OP將在稍後遇到該問題,但目前的問題是他將模板定義放入'.cpp'文件中。 – pmr