- Member Template(成员模板)
class member function可以是个template,但这样的member template既不能是virtual,也不能有缺省参数。例如:
class MyClass{
…
template
void f(T);
}
在这里,MyClass::f声明了一个成员函数集,适用于任何类型参数。参数类型为T类型。 - 相同类型的类模板作为函数参数
- 如下的assign()的参数x ,其类型必须和调用端所提供的对象的类型完全吻合
如果我们对assign()使用不同的templete类型,会出错。
如:MyClassi(5.5);
m.assign(y);//会出错 - 不同类型的类模板作为函数参数
如果c++允许我们为member function提供不同(一个以上)的template类型,就可以放宽"必须精准吻合"这条规则,只要类型可以被赋值,就可以被当作上述member template function的参数
template //成员模板
如下的assgin(const MyClass&x)//允许不同的模板
绕的我头都晕了–。--