C++ 源文件中未命名的命名空间和局部变量

C++ 源文件中未命名的命名空间和局部变量,c++,namespaces,C++,Namespaces,我总是在源文件中使用未命名的名称空间来代替静态名称空间,但我遇到了一些只在源文件中定义名称空间的代码 // Source file foo.cpp const float someFloat = 3.2f; Foo::Foo() { std::cout << someFloat << std::endl; } //源文件foo.cpp 常量float someFloat=3.2f; Foo::Foo(){ std::cout在本例中,其他一些.cpp文件可以使用

我总是在源文件中使用未命名的名称空间来代替静态名称空间,但我遇到了一些只在源文件中定义名称空间的代码

// Source file foo.cpp

const float someFloat = 3.2f;

Foo::Foo() {
  std::cout << someFloat << std::endl;
}
//源文件foo.cpp
常量float someFloat=3.2f;
Foo::Foo(){

std::cout在本例中,其他一些
.cpp
文件可以使用
extern const float someFloat;
拉入该变量,如果该变量是静态的或在未命名的命名空间中,则不可能这样做

有人可能会说,使用
extern
的可能性是一个缺点,因为它可能会在某些情况下破坏封装。

定义了什么?一个正常的全局变量?