类模板

函数模板:下面的程序中typename也可以用class

template <typename T>

T max(T a,T b,Tc){}

其中T是虚拟类型,函数模板就是将数据类型参数化。


类模板:参数化的类


对于上面的程序,虚拟类型名为numtype,类模板名为Compare;

一类将可以多用:虚拟类型参数名numtype可以替换成int,float,double,string甚至更多

自定义类及类型;


上面 程序中的<>里面的内容将会代替虚拟类型的名字;需要注意的是如果尖括号中的为int,那么它会代替整个类中所有的numtype为int;

只要在声明对象的时候用<>将虚拟类型明确了,之后的操作就不需要用<>了;


类模板的声明:

template  <class 虚拟类型参数>

class 类名{......};//使用虚拟类型的类声明

类模板定义对象的形式:

类模板名<实际类型名> 对象名;

类模板名<实际类型名>对象名(实参表列);


在类模板外定义成员函数:


对于上面的程序来说,在类模板外面定义的成员函数,每个都要用类模板,也就是说,每个前面

都要加上一句template<class numtype>,否则的话编译系统会不识别numtype。

一般形式为:

template  <class 虚拟类型参数>

函数类型 类模板名<虚拟类型参数>::成员函数名(函数形参表列){}



总结:抽象技术

                 抽象 实例

     类是对象的抽象      对象是类的实例

   类模板是类的抽象    类是类模板的实例

template<class T1,class T2>             someclass<int ,double>obj1;

class someclass{...}     someclass<float,long>obj2;

.......



Standard Template Library标准模板库-------------c++中的精华

在C++标准中,STL被组织为下面的17个头文件:<algorithm>、<deque>、<functional>、<iterator>、<array>、<vector>、<list>、<forward_list>、<map>、<unordered_map>、<memory>、<numeric>、<queue>、<set>、<unordered_set>、<stack>和<utility>。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值