函数模板与类模板

这段时间在复习c++的东西,把一些面试常问的一系列问题罗列下,我方便自己重温

1.函数模板:

函数模板是为参数类型一致,参数个数一样,功能代码相同的一类函数提供的函数接口,在编译时能够动态的匹配

根据以上的严格限制我们可以知道,函数模板其实运用是非常有限的,所以一般不常用,在这里提出来是为了引出类模板的概念

给一个函数模板的例子

#include <iostream>
using namespace std;

template <class T2>
bool cmp(T2 a,T2 b)
{
     if(a>=b)
           return true;
     else 
           return false;
}
模板可以支持多变量类型


2.类模板:

继承了函数模板的优点,即支持变量类型动态匹配,但为了避免参数类型的限制,在使用时指定类型(也就是说是主动定义,而不是自动匹配),这样使用时更加灵活

给一个类模板的例子

template <class numtype>
class compare
{
     public:
               compare(numtype a,numtype b)
             {
                    x=a;
                    y=b;
             }
       numtype max()
             {
                   return x>=y?x:y;
             }
       numtype min()
             {
                  return x<=y?x:y;
             }
     private:
                 numtype  x,y;
};
如何使用呢,如下

compare <int> cmp(4,7)
cout<<cmp.max()<<","<<cmp.min()<<endl;        

运行结果是

7,4


小结:

类模板的用途很广,如stl模板,容器类,还有智能指针等都是类模板的应用

注明下,部分例子是引用谭浩强的《c++程序设计》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值