template <class T>
class MyClass
{
private:
T value;
public:
void assign(const MyClass<T>& x)
{
value=x.value;
}
};
void main()
{
MyClass<double> d;
MyClass<int> i;
d.assign(d);
d.assign(i);
}
template <class T>
class MyClass
{
private:
T value;
public:
template<class T>
void assign(const MyClass<T>& x)
{
value=x.getValue();
}
T getValue() const
{
return value;
}
};
void main()
{
MyClass<double> d;
MyClass<int> i;
d.assign(d);
d.assign(i);
}
总结(摘自C++标准程序库):C++允许我们为成员函数提供一个以上的模板类型,就可以放宽“必须精确吻合”这条规则;只要类型可被赋值,就可以被当做上述成员模板函数的参数。