※ 引述《wandering25 (晃晃)》之铭言:
我记得一个 class 的 static 成员,
除了在 *.h file 里被 declare 之外,
还必须在 *.cpp file 里被 define。
Card.h
private:
static string suitDict[4];
Card.cpp
string Card::suitDict[4];
不知道我这样子说对不对,实在是 N 年没碰 C++ 了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: 开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
: VC++
: 额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
: 问题(Question):
: 大家好
: 我是刚学C++的新手
: 刚学到class的部分
: 刚在写作业时遇到一个问题一直找不出问题在哪
: 就是我在class的header file里面定义了一个
: private :
: static string suitDict[4] ;
: 然后在class的constructor里面写
: suitDict[0] = "spade";
: suitDict[1] = "heart";
: suitDict[2] = "diamond";
: suitDict[3] = "club";
: 然后complie时就出现错误讯息
: 错误讯息 :
: 错误 2 error LNK2001: 无法解析的外部符号 "private: static class
: std::basic_string<char,struct std::char_traits<char>,class
: std::allocator<char> > * Card::faceDict"
: 但是若我把header file里面的"static"拿到
: 就可以顺利执行
: 想请问static这样用的问题在哪里?
: 谢谢