类的静态成员 问题
Class A
{
private:
static char m_szDllPathName[MAX_PATH];
static vector<APIINFO*> m_vpApiInfo;
};
如果直接在类成员函数中用的话,会报
无法解析的外部符号 "private: static char * A::m_szDllPathName" (?m_szDllPathName@CHookApi@@0PADA)
无法解析的外部符号 private: static class std::vector<struct _APIINFO *,class std::allocator<struct _APIINFO *> > A::m_vpApiInfo"
个人认为是没有初始化,但以上两种怎么初始化呢? 类
[解决办法]
//直接在类定外加
char A::m_szDllPathName[MAX_PATH];
vector<APIINFO*> A::m_vpApiInfo;
[解决办法]
1:第一种方式
char A::m_szDllPathName[]="test";
2:第二种方式
char A::m_szDllPathName[MAX_PATH]="test";
[解决办法]
你只声明了,还没有定义,当然找不到符号了
[解决办法]
static数据成员必须在类定义体的外部定义(正好一次)。
[解决办法]
链接问题,你这静态成员只是在类体中进行了声明,却没有定义,必须在类体外面定义一次。