函數模版、類模版例子對比

仍是例子說話。程序員

函數模板:函數

template<class T> max(const T a, const T b)

{

  return (a>b ? a : b);

}

這樣用:

//int

int a = 1, b = 2;

max(a, b);

//float

float c = 1.0f, d = 2.0f;

max(c, d);

//double

double e = 1.0, f = 2.0;

max(e, f);

//...

 

類模板:code

template<class T> 

class C

{

public:

  T max(const T a, const T b)

  {

    return (a>b ? a : b);

  }

};

對這個類進行實例化:

//int

C<int> cn;

//float

C<float> cf;

//double

C<double> cd;

//...

 

如今看出區別了吧,區別在於函數模板和類模板的使用方式上:編譯器

函數模板在使用時不須要程序員指定類型,編譯器在編譯的時候會自動綁定;而類模板須要程序員手工指定,指定的方式是:類名字<類型>。編譯

相關文章
相關標籤/搜索