0

我有一个包含静态成员变量的类,我想使用 .cpp 文件中的匿名命名空间对其进行初始化,就像我在链接中看到的一样:在 C++ 中放置常量字符串的位置:静态类成员或匿名命名空间

但我收到一条错误消息,说当前会员费率无法在范围内定义。为什么?

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


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

}
4

1 回答 1

1

你不能:它已经是一个类的合格成员:

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

会做。由于static声明,意志已经坚持。

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

但是,类成员与可见性(内部/外部链接)static没有任何关系。相反,它必须与storage duration

于 2013-08-04T22:21:46.263 回答