 c++模板類概念與實例
							時間:2018-07-30      來源:未知
							c++模板類概念與實例
							時間:2018-07-30      來源:未知 
							模(mo)板:模(mo)板是對一種對類(lei)型進行參數化的工具(ju)。
模板的聲明或者定(ding)義只能在全局,命名空間或者類范(fan)圍內進(jin)行(xing)。即不能在局部(bu)范(fan)圍,函(han)數內進(jin)行(xing)。
函(han)數模板 參數類型不一(yi)樣的但是功能及函(han)數名一(yi)樣的函(han)數
函數模板的聲明(ming)定義語法(fa)上差異不大(da),就像普通(tong)函數一樣使用
  template 
T add(T x, T y);
 template 
C add(C x, C y)
{
return x+y;
}
類(lei)(lei)模(mo)板 成(cheng)員屬性(xing)的類(lei)(lei)型(xing)和成(cheng)員函數的類(lei)(lei)不(bu)一樣但(dan)是成(cheng)員屬性(xing)及函數一樣的類(lei)(lei)
 template 
class Demo{
public:
Demo(T1 a, T2 b);
void setx(T1 a);
static void sety(Demo &, T2 val);
T1 getx() const;
T2 gety() const;
private:
static T1 x;
T2 y;
};
友元函數模板
如果一個類(lei)是模板類(lei),又要實現運算符重載,就是一個友元(yuan)函(han)數(shu)模板;
實質(zhi)是類(lei)模板和函數(shu)模板的(de)綜合運(yun)用
 template 
class Demo{
public:
Demo(const int val);
public:
T getval() const;
void setval(const int val);
  template 
  friend Demo
private:
T ival;
};
非(fei)類型(xing)模(mo)板參數(shu)
  template 
class Array{
public:
Array();
Array(const Array &);
~Array();
public:
T& at(const int id=0) const;
T& operator[](const int id)const;
private:
T* const buffer;
};
T:模(mo)板類型參數;len:模(mo)板非類型參數;T、len都可以有默認值(zhi)

