1( D:\imp\msgList\fun1.cpp
CMLMessage::MLMessageStatus CMLMessage::getInformationBlocks(const TBase::TLocale& fallbackLocale )
{
CDatabaseHelper::setfallBackLocale(fallbackLocale); // setter function
}
2( D:\imp\commonfolder\fun2.cpp
class CDatabaseHelper
{
Public:
static void setfallBackLocale(TBase::TLocale fallbackLocale)
{
mfallbackLocale = fallbackLocale;
}
Private:
static TBase::TLocale mfallbackLocale; // class member
}
编译器给出错误:
error LNK2001: unresolved external symbol "private: static struct TBase::TLocale NTrafficInformation::CDatabaseHelper::mfallbackLocale" (?mfallbackLocale@CDatabaseHelper@NTrafficInformation@@0UTLocale@TBase@@A)
嗨,专家,您对此有什么建议吗?
在fun2.cpp
中,您需要使用以下内容初始化该静态成员:
TBase::TLocale CDatabaseHelper::mfallbackLocale = TBase::TLocale{"C"};
其中右侧是产生TLocale
的任何有效表达式。 此行应位于类定义之后。
有关声明/定义该静态成员的替代方法,请参阅有关"静态成员"的 cpp首选项页面。