Function template
你设计一个函数, 比如现在要比大小
这 A 和 B 来比, 怎么样比呢 ? 用小于号 < 来比, 至于 A 和 B 是整数还是 long 还是字符串都没有关系.
既然这样, 我们就把这个函数设计成一个 function template.
语法就像图中黄色部分一样, 告诉编译器, T 是什么, typename, 这个关键字 class 在这里可以改成 typename.
这里的使用方法, 对比之前的类模板还要简单一些
函数模板在使用的时候不必指明数据类型
stone r1(2, 3), r2(3, 3), r3;
r3 = min(r1, r2);
因为函数模板在使用的时候, 一定是去调用它, 调用的时候一定要放参数, 于是编译器就做实参推导, 编译器可以根据你调用时候的参数去推出这个 T 是什么类型.
编译器推出来 T 是什么之后, 这个例子是推出来两个参数是 stone 类型, 然后看 stone 能不能比大小, 然后编译器再去找, 看看 stone 这个类有没有写小于这一个动作
模板的编译, 编出来也只是一个半成品. 真正使用的时候, 会再编译一次.