C++中静态成员变量要在类外部再定义或初始化
class StrVec
{
static std::allocator<std::string> alloc;// 分配内存元素
};
error LNK2001: 无法解析的外部符号 “private: static class std::allocator<class std::basic_string<char,struct std::char_traits,class std::allocator > > StrVec::alloc” (?alloc@StrVec@@0V? a l l o c a t o r @ V ? allocator@V? allocator@V?basic_string@DU? c h a r t r a i t s @ D @ s t d @ @ V ? char_traits@D@std@@V? chartraits@D@std@@V?allocator@D@2@@std@@@std@@A)
原因: alloc 作为class的static 成员需要再class外 定义;
class StrVec
{
static std::allocator<std::string> alloc;// 分配内存元素
};
std::allocator<std::string> alloc;