template
来源:互联网 发布:单桂敏艾条淘宝旗舰店 编辑:程序博客网 时间:2024/05/21 09:52
template允许定义以数据类型为参数的函数和class
template<class T>
这叫template prefix,它告知compiler它后面的函数定义是一个template并且T是type parameter,这里class的是指数据类型(而不代表类)。当使用template时,只会对每一种使用的数据类型产生对应的函数/class定义
template<class T>void swap(T &a, T &b) {T temp;tmp = a;a = b;b = temp;}
许多compiler不支持template function declaration和separate compilation,所以最安全的方法就是不要使用template function declaration,并且保证在template function被使用的同一个文件中对其进行定义(但是template function的定义可以通过#include实现,当然也有一些compiler不支持这样做)
function template可以有多个type parameter,但是不能出现未被使用的template parameter,也就是说每一个template parameter一旦出现就必须被使用
template<class T1, class T2>
使用class template的语法如下,注意scope resolution operator("::")前要使用Pair<T>而不是Pair
template<class T>class Pair{public:Pair();Pair(T first_value, T second_value);void set(int position, T value);T getValue(int position);private:T value1;T value2;};template<class T>Pair<T>::Pair(T first_value, T second_value) : value1(first_value), value2(second_value){}template<class T>void Pair<T>::set_element(int position, T value){if(position == 1)value1 = value;else if(position == 2)value2 = value;else{cout << "invalid input\n";exit(1);}...Pair<int> score;Pair<char> seats;
。
0 0
- template
- Template
- template
- template
- template
- Template
- template
- template
- Template
- template
- Template
- template
- template
- Template
- template
- template
- Template
- template
- Xcode7.0.1编译报错“You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE),”
- loginEx
- Leetcode #134 Gas Station
- 创建对象与使用对象——谈谈工厂的作用
- Linux安装sbt过程详解
- template
- 利用htmlunit登陆带验证码图片的网站
- 我
- 5.3 基本计算机颜色
- There was an internal API error.
- ——黑马程序员——OC中的私有变量、私有方法、descriptiion方法
- Leetcode #199 Binary Tree Right Side View
- Leetcode #172 Factorial Trailing Zeroes
- sql中AS用法