c++类模板中静态成员变量的声明定义
睿丰德科技 专注RFID识别技术和条码识别技术与管理软件的集成项目。质量追溯系统、MES系统、金蝶与条码系统对接、用友与条码系统对接
我们知道,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;
这样,就可以对所有的类型自动定义该静态变量啦
RFID管理系统集成商 RFID中间件 条码系统中间层 物联网软件集成