C++中的函数模板&&类模板

函数模板

template <class 类型形式参数>
函数返回类型  函数名(形势参数表)
{
    //函数体
}

函数模板定义模板函数举例:

template <class T,class T1>//函数模板定义举例
  void swap(T &a,T1 &b)
     {
         T1 temp;
         temp=a;
         a=b;
         b=temp;
     }
 void main()
     {
       int a=8;
       float b=9.8;
       swap(a,b);
     std::cout<<"a="<<a<<" b="<<b<<std::endl;
     }
     结果为a=9 b=8;

类模板:

template <class 形式参数表>
class 类名
{
    //类体
}

类模板成员函数内定义与一般的类的成员函数定义方法一样,外定义需采用下面的形式:

template <class 形式参数表>
返回类型   类名<类型名表>::成员函数名(形式参数表)
{
  //定义成员函数体;
}

类模板实例化举例:

template <class T1 ,class T2>
 class Myclass{
 public:
  Myclass(T1 xx,T2 yy);//外部构造函数定义声明
     void print()
   {
   std::cout<<"x="<<x<<"y="<<y<<std::endl;
   }
 private:
  T1 x;
  T2 y;
  };
 template<class T1,class T2>
 Myclass<T1,T2>::Myclass(T1 xx, T2 yy)
  {
  this->x=xx;
  this->y=yy;
  }
void main()
 {
   Myclass<int ,char> obj(8,'d');
   //Myclass<int ,char>为模板类,为一个类模板的实例化,
   接收intchar的数据类型
   obj.print();

 }

类模板和模板类的区别:
类模板是模板的定义,不是一个实实在在的类,定义中用到通用的类型参数;而模板类是实实在在的类,是类模板的实例化,类定义中通用的类型参数被实际类型所代替,对象属于一个模板类,但是不属于一个类模板。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值