o! you shall define m_maptable as public: like this; class HFileConverse { public: static CMap<CString, LPCTSTR, int, int> m_maptable; }
static对象不受任何存储权限的束缚,改为public于事无补
i have compile my code. yeah, you are right , it wrong.i am sorry.class HFileConverse { public: static CMap<CString, LPCTSTR, int, int> m_maptable; }CMap<CString, LPCTSTR, int, int> HFileConverse::m_maptable;// there some wrong with this statement //CMap<CString, LPCTSTR, int, int> HFileConverse::m_maptable["a"] = 10; // but if in a function,no error. void f() { CMap<CString, LPCTSTR, int, int> HFileConverse::m_maptable["a"] = 10;} i do not know why!but" static对象不受任何存储权限的束缚" is wrong!
{
//cstring 到 int的映射
static CMap<CString, LPCTSTR, int, int> m_maptable;
}CMap<CString, LPCTSTR, int, int> HFileConverse::m_maptable["a"] = 10;编译后出现三个错误:
error C2057: expected constant expression
cannot allocate an array of constant size 0
private: static class CMap<class CString,char const *,int,int> HFileConverse::m_maptable' : 'class CMap<class CString,char const *,int,int> []' differs in levels of indirection from 'class CMa
p<class CString,char const *,int,int>'
{
static CMap<CString, LPCTSTR, int, int> m_maptable;
}CMap<CString, LPCTSTR, int, int> HFileConverse::m_maptable;CMap<CString, LPCTSTR, int, int> HFileConverse::m_maptable["a"] = 10;
初始化难道就不能在全局实现?我不想为了初始化而浪费一个函数
like this;
class HFileConverse
{
public:
static CMap<CString, LPCTSTR, int, int> m_maptable;
}
yeah, you are right , it wrong.i am sorry.class HFileConverse
{
public:
static CMap<CString, LPCTSTR, int, int> m_maptable;
}CMap<CString, LPCTSTR, int, int> HFileConverse::m_maptable;// there some wrong with this statement
//CMap<CString, LPCTSTR, int, int> HFileConverse::m_maptable["a"] = 10;
// but if in a function,no error.
void f()
{ CMap<CString, LPCTSTR, int, int> HFileConverse::m_maptable["a"] = 10;}
i do not know why!but" static对象不受任何存储权限的束缚" is wrong!