首页 > 代码库 > c++知识点总结--函数模板

c++知识点总结--函数模板

通用函数可变参模板

用于处理不限定参数的函数 showall(){//空函数,接口,最后结束递归}template<typename T,typename... Args>void showall(T value,Args ...args){  cout<<value<<endl;  showall(args);}template<typename T,typename ...Args>void showall(const T &value,const Args &...args){}//设计可以修改原来的数据  T &value,Args &...args//设计不可以修改原来的数据可以修改副本 T value,Args ...args//设计不可以修改原来的数据不可以修改副本 const T value,const Args ...args

 

函数模板的覆盖

结构体可以直接赋值,所有成员都是公有的类也可直接赋值struct info{char name[40];double db;int data;}template <typename T>void     swap(T&a,T&b){  cout<<"通用函数模板"<<endl;  T temp=a;  a=b;  b=temp;}    template <>//模板为空,指定类型void     swap(info&a,info&b){  cout<<"特有函数模板"<<endl;  //根据自己的数据类型进行优化  T temp=a;  a=b;  b=temp;}    

函数模板的重载

template<typename T>void showarray(array<T,10> myarray,int n){    cout<<"func 1"<<endl;    for(int i=0;i<n;i++){        cout<<myarray[i]<<" ";    }}void showarray(array<T*,10> myarray,int n){    cout<<"func 2"<<endl;    for(int i=0;i<n;i++){        cout<<*myarray[i]<<" ";    }}    

 

c++知识点总结--函数模板