C++类模板

  可以像定义函数模板一样去定义类模板。定义形式为:

  template <模板形参表>

  class 类模板名{

    成员列表

  };

  <模板形参表>的格式一般为:<class 类型参数1,clsss 类型参数2,...>

  利用类模板可以建立支持各种数据类型的类。

  例子:

  template<class T>

  class Point{

  public:

    Point():x(0),y(0){}

    Point(const T a,const T b);

    void Set(const T a,const T b);

    void Display(){cout<<"Display:"<<"x="<<x<<",y="<<y<<endl;

  private:

    T x,y;

  };

  如果在类模板外部定义成员函数,形式为:

  template<模板形参表>

  返回类型 类名<类型参数表>::函数名(形式参数列表)

  {

    函数体

  };

  例如:

  template<class T>

  void Point<T>::Set(const T a,const T b)

  {

    x=a,y=b;

  };

  用类模板定义对象时,必须为模板形式参数显式指定类型实参,将类模板实例化,一般形式为:

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

  例如:

  Point<int >a,b;

  Point<double>m(1,2),n(3,4);

  模板形参表可以是非类型形参,其形式与函数形参表相似:

  template<class T ,int N>

  class Se{

  ...

  };

  template<class T,int N>

  void Se<T,N>::Set(int i, T value)

  {...}

  

posted @ 2019-07-19 20:26  心田居士  阅读(3901)  评论(0编辑  收藏  举报