C++ 如何使用匿名命名空间在.cpp文件中设置静态成员变量?

C++ 如何使用匿名命名空间在.cpp文件中设置静态成员变量?,c++,C++,我有一个包含静态成员变量的类,我想使用.cpp文件中的匿名名称空间初始化它,就像我在链接中看到的那样: 但是我得到一个错误,说当前的会员利率不能在范围内定义。为什么? //A.h namespace myclass { class A { private: static double rate; }; } //A.cpp namespace myclass { namespace{ double A::rate = 99.9; } } 您不能:它已

我有一个包含静态成员变量的类,我想使用.cpp文件中的匿名名称空间初始化它,就像我在链接中看到的那样:

但是我得到一个错误,说当前的会员利率不能在范围内定义。为什么?

//A.h
namespace myclass
{
class A
{
   private:
      static double rate;
};
}


//A.cpp
namespace myclass
{
   namespace{
      double A::rate = 99.9;
  }

}

您不能:它已经是某个类的合格成员:

//A.cpp
namespace myclass
{
   double A::rate = 99.9;
}
行。由于声明的原因,
静态
将一直存在

这种混淆可能是因为
static
具有不同的含义:

但是,
静态
类成员与可见性(内部/外部链接)无关。相反,它必须与存储持续时间相关