// MyClass.h
namespace MyNamespace {
static const double GasConstant = 1.987;
class MyClass
{
// constructors, methods, etc.
};
}
之前我在MyClass声明中已经声明了GasConstant(并且由于C++不支持非整数类型的const
初始化,所以在源文件中有单独的定义)。但是我需要从其他文件访问它,逻辑上似乎应该在命名空间级别上声明。
我的问题是,在这种情况下,static const
有什么影响? 显然,const
意味着我不能为GasConstant赋新值,但是命名空间中的静态成员意味着什么。这与文件作用域中的静态相似,其中成员在单元外部无法访问吗?
cplusplus.com
因其对“全局”一词的不准确使用而闻名。因此,如果某些内容解释了“静态”的“全局作用域”中的效果,它们通常指的是其在命名空间作用域中的影响。 - Johannes Schaub - litb