首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

类的静态成员 有关问题

2013-04-22 
类的静态成员 问题Class A{private:static char m_szDllPathName[MAX_PATH]static vectorAPIINFO* m_vp

类的静态成员 问题


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数据成员必须在类定义体的外部定义(正好一次)。
[解决办法]
链接问题,你这静态成员只是在类体中进行了声明,却没有定义,必须在类体外面定义一次。

热点排行