我有一个包含静态成员变量的类,我希望使用.cpp文件中的匿名命名空间来初始化它,就像我在链接:Where to put constant strings in C++: static class members or anonymous namespaces中看到的那样。
但是,我收到一个错误,说当前的会员率不能在范围内定义。为什么?
//A.h
namespace myclass
{
class A
{
private:
static double rate;
};
}
//A.cpp
namespace myclass
{
namespace{
double A::rate = 99.9;
}
}发布于 2013-08-04 22:21:46
你不能:它已经是一个类别的合格成员了:
//A.cpp
namespace myclass
{
double A::rate = 99.9;
}就行了。由于声明的缘故,static已经坚持了下来。
混淆可能是因为static有不同的含义:
但是,static类成员与可见性(内部/外部链接)无关。相反,它必须与存储持续时间有关。
https://stackoverflow.com/questions/18048163
复制相似问题