我提供样本:
class a
{
public:
static int m_n;
static int memfuc();
};
int a::memfuc()
{
int k =m_n;
return k;
}
但以下示例抛出链接器错误:未解析的外部符号
答案 0 :(得分:4)
你没有定义(而不是声明)你的静态类成员变量。
您可以将此代码放在某个实现文件(.cpp)中:
int a::m_n = 123456;
答案 1 :(得分:2)
您需要在某处提供实施:
int a::m_n;
答案 2 :(得分:0)
对于静态,您必须将其定义为:
class a
{
public:
static int m_n;
static int memfuc();
};
int a::m_n = 0;
int main()
{
a my_a;
}
MY2C
答案 3 :(得分:0)
您需要定义成员m_n
,但您还需要正确访问该成员。
您需要添加:
int a::m_n = 0 // Or some number of your choice
现在m_n是定义的你可以在任何地方访问它,而不仅仅是在其他成员函数中:
int get_m_n()
{
int k = a::m_n;
return k;
}