我自己搭建了博客,以后可能不太在CSDN上发博文了,https://www.qingdujun.com/。
前一篇文章《浅谈C++ templates 函数模板、类模板以及非类型模板参数》简单的介绍了什么是函数模板(这个最简单),类模板以及非类型模板参数。本文对类模板再做几点补充。
1. 缺省的模板实参
这里依旧使用上一篇文章中的array
类作为例子,其中有一处改变了——就是将unsigned int N = 10
后面添加了一个默认的参数10:
template<typename T, unsigned int N = 10>
class array {
public:
array();
T& operator[] (unsigned int index);
constexpr unsigned int size() noexcept;
private:
T elems[N];
int length;
};
正是由于有默认的参数,所以如果没有指定array
的大小的话,就会默认为10。
og::array<int> ai;
ai[0]