static成员变量,不明白的错误,内详:
class A
{
protected:
static int m_test ;
public:
void setTest(int data);
};
void A::setTest(int data)
{
m_test = data;
}
这个时候编译有错误:
classTest.obj : error LNK2001: unresolved external symbol "public: static int A::m_test" (?m_test@A@@2HA)
是为什么? 抄的书上的一个例子,跟这是一样的错误,两天都没解决。
求助!
[解决办法]
class A
{
protected:
static int m_test ;
public:
void setTest(int data);
};
int A:: m_test ;
[解决办法]
int A::m_test(0);
[解决办法]
static没定义 怎么就能用来赋值呢?所谓定义就是一个分配内存的过程 如楼上的代码
[解决办法]
必须在类外进行定义!
[解决办法]
static数据成员必须在类定义体外部定义(正好一次)。不像普通数据成员, static成员不是通过类构造函数进行初始化,而是应该在定义时进行初始化。