我提供我的样本:如何在同一类的静态成员函数中访问静态类变量?
class a
{
public:
static int m_n;
static int memfuc();
};
int a::memfuc()
{
int k =m_n;
return k;
}
但下面的示例抛出链接错误:无法解析的外部符号
我提供我的样本:如何在同一类的静态成员函数中访问静态类变量?
class a
{
public:
static int m_n;
static int memfuc();
};
int a::memfuc()
{
int k =m_n;
return k;
}
但下面的示例抛出链接错误:无法解析的外部符号
您需要的地方提供实现:
int a::m_n;
你没有定义(而不是声明)你的静态类成员变量。
你可以把这个代码在实现文件(的.cpp)地方:
int a::m_n = 123456;
对于静态的,你必须把它定义为:
class a
{
public:
static int m_n;
static int memfuc();
};
int a::m_n = 0;
int main()
{
a my_a;
}
MY2C
你需要定义成员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;
}
已经做了;)总是抓住我。 ..至少编译器发出一个有用的错误消息,为那个! – James 2011-04-28 09:22:20