一、模版:
1.1函数模版
我们可以不用为每个类型定义一个新函数,而是只定义一个函数模板(function template)。函数模板是一个独立于类型的函数,可作为一种方式,产生函数的特定类型版本。
- template <typename T> //和class T一样
- int compare(const T &v1, const T &v2) //比较大小的模版
- {
- if (v1 < v2) return -1;
- if (v2 < v1) return 1;
- return 0;
- }
- int main (int argc, char *argv[])
- {
- // T is int;
- // compiler instantiates int compare(const int&, const int&)
- cout << compare(1, 0) << endl;
- // T is string;
- // compiler instantiates int compare(const string&, const string&)
- string s1 = "hi", s2 = "world";
- cout << compare(s1, s2) << endl;
- return 0;
- }
1.2类模版:
- template <class Type> class Queue {
- public:
- Queue (); // default constructor
- Type &front (); // return element from head of Queue
- const Type &front () const; //通过形参类型指定重载 front 操作的返回类型 void push (const Type &); // add element to back of Queue
- void pop(); // remove element from head of Queue
- bool empty() const; // true if no elements in the Queue
- private:
- // ...
- };
阅读(479) | 评论(0) | 转发(0) |