您的位置:首页 > 其它

1.2 template (模板) 简介

2017-05-10 00:04 141 查看
  模板是C++中泛型编程的基础。

   一个模板就是一个创建类或函数的蓝图或者说公式。

  · 函数模板

    模板定义以关键字template开始,后跟一个模板参数列表(template parameter listing),这是一个用逗号分隔的一个或者多个模板参数(template parameter)列表,用小于号(<)和大于号(>)包围起来。

   Note: 在模板定义的中,模板参数列表不能为空

   compare函数的模板版本可能如下:

  template <typename T>  //<typename T>为模板参数列表

  int compare ( const T &v1, const T &v2)

  {

  if ( v1 < v2 )  return -1;

  if ( v2 < v1 )  return 1;

  return 0;

  } 

  inline函数模板:

  函数模板可以用与非模板函数一样的方式声明为inline。说明符放在模板形参表之后、返回类型之前,不能放在关键字template之前。

  //OK: inline specifier follows template parameter list

  template <typename T> inline T min(const T&, const T &);

·class template (类模板)

   类似函数模板,类模板以关键字template开始,后跟模板参数列表。

   模板用于类的定义如下:

  template <typename T>

  class complex

 {

 public:

     complex (T r = 0, T i = 0): re (r) , im (i) {}

     complex& operator += (const complex&);

     T real () const { return re;}

     T imag ()  const { return im;}

 private:

     T re, im;

     friend complex& __doapl (complex*, const complex&); 

 };

  {

     complex<double> c1(2.5,1.5);

     complex<int> c2(2,6);

     ...

  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: