现在我正在学习C++,现在我知道模板的基本概念, ,它的作用就像一个泛型类型, ,我发现几乎所有的C++程序使用模板, 所以我真的很想知道我们什么时候该假设使用模板? 有人可以为我结束关于C++模板的经验吗? 您何时会考虑使用模板?什么时候最好用C++模板?
补充: 如果我们定义这样的功能
template <class myType>
myType GetMax (myType a, myType b) {
return (a>b?a:b);
}
,但我们想传递一个对象(自定义类)进行比较,我们怎样才能实现?
Supplement2:在下面的答案 ,有人已经写了这个示例代码
template <class myType>
const myType& GetMax (const myType& a, const myType& b) {
return (a<b?b:a);
}
template <class myType, class Compare>
const myType& GetMax (const myType& a, const myType& b, Compare compare) {
return (compare(a,b)?b:a);
}
这是正确的?我们可以传递一个函数名作为类myType的参数吗?如果你想添加2 INT,你想获得一个
模板并不总是泛型类型。模板也可以是通用函数,就像你给出的例子。 – pyon 2009-08-31 15:14:37
Re:supplement 2.你可以传递一个指向函数的指针(“函数名称”)或一个函子(重载operator()的类)作为第二个重载的第三个参数。 – UncleBens 2009-08-31 18:36:53
@UncleBens:当然,这就是实际乐趣开始的地方。想象一下那些(尤其是后者)的所有用途(和滥用!)! – pyon 2009-09-02 00:16:12