想要实现模板的特化,但是一直显示错误int pairt::module()不是可显示专用化的实体,什么是可显示专用化的实体,代码如下,求大神解答
//范例17-4
//Specialization程序
//模板的特化
//2014.10.23
template //类模板pair定义
class pairt
{
private:
T value1, value2; //两个T类型变量
public:
pairt (T first, T second) //构造函数
{
value1=first;
value2=second;
}
T module () //类成员函数
{
return 0;
}
};
template <> //类模板的特化:当T为int时
class pairt
{
int value1, value2;
public:
pairt (int first, int second)
{
value1=first;
value2=second;
}
int module ();
};
template <>
int pairt::module() //类模板成员的特化:当参数为int时求模
{
return value1%value2;
}
#include
using namespace std;
int main (void)
{
pairt myInt (70,18); //int型,模板特化的实例
pairt myFloat (70.0,18.0); //float型,通用模板的实例
cout << "myInt.module():"<<myInt.module() << endl; //当为int时,module函数求模:70%18=16
cout << "myFloat.module():"<<myFloat.module() << endl; //非int时,module函数返回0
system("pause");
return 0;
}