我认为大多数C++程序员会同意污染全局命名空间是一个坏主意,但有时这个规则可以被忽略吗?污染全局命名空间
例如,我有一个类型,我需要使用所有在特定的应用程序 - 我应该这样定义它:
mytypes.h
typedef int MY_TYPE;
foo.cpp
MY_TYPE myType;
或者使用一个命名空间:
mytypes.h
namespace ns {
typedef int MY_TYPE;
}
foo.cpp
ns::MY_TYPE myType;
...
using namespace ns;
MY_TYPE myType;
哪一种你喜欢哪一种?有时可以使用第一种方法吗?
我大多数人都同意,但如果在整个应用程序中使用MY_TYPE,我认为它可能会更好地作为单独模块/库的一部分提供服务。 – 2008-11-06 09:20:50