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
的可能性是一个缺点,因为它可能会在某些情况下破坏封装。定义了什么?一个正常的全局变量?