如何在同一个类的静态成员函数中访问静态类变量?

时间:2011-04-28 09:17:16

标签: c++

我提供样本:

  class a
  {
      public:
           static int m_n;
           static  int memfuc();
  };
  int a::memfuc()
  {
        int k =m_n;
         return k;
  }

但以下示例抛出链接器错误:未解析的外部符号

4 个答案:

答案 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;
}