我有一个包含静态成员变量的类,我想使用 .cpp 文件中的匿名命名空间对其进行初始化,就像我在链接中看到的那样:Where to put constant strings in C++: static class members or anonymous namespaces
但我收到一条错误消息,指出无法在范围内定义当前成员(member)费率。为什么?
//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
已经存在。
混淆可能是因为 static
有不同的含义:
但是,static
类成员与可见性(内部/外部链接)没有任何关系。相反,它必须与存储持续时间有关。
关于c++ - 如何使用匿名命名空间在.cpp 文件中设置静态成员变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18048163/