一.模板參數
- 類型模板參數: 出現在模板參數列表中,跟在typename/class後的參數。
- 非類型模板參數:用一個常量作爲模板的一個參數。可以將該參數當做常量來使用。
二.舉例
template <class T,size_t N>
class array1 {
public:
T& operator[](size_t index) {
if(index < _size)
return _array[index];
}
bool empty()const {
return 0 == _size;
}
size_t size()const {
return _size;
}
private:
T _array[N];
size_t _size;
};
int main() {
array1<int,10> a1;
return 0;
}
三.注意tip
- 1.浮點型/對象/字符串不允許作爲非類型模板參數
- 2.必須在編譯階段明確確定。
- 3.表達式也可以 不可以爲變量表達式。
array1<int,10+20> a1;//可以
int a = 10;
int b = 20;
array1<int,a+b> a2;//不可以