我们知道,c++中,类的静态成员是要在.cpp文件中定义的,如果在.h中定义,会出现重复定义。
但是在写类模板时,一般所有的代码都是放在.h文件中的,如果要做分离是一件很麻烦的事。那如果出现了静态成员怎么办?
如:
// ==== ca.h =====
template<class T>
class ca
{
public:
static std::vector<T> m_vec;
};
对于这个m_vec怎么办呢?难道要我们在每个使用该类模板的.cpp中,都手动增加一个定义吗?
不用那么麻烦。就在ca.h中,加上一条
// ===== ca.h =====
template<class T>
std::vector<T> ca<T>::m_vec;
这样,就可以对所有的类型自动定义该静态变量啦