假设我有以下文件:
// SomeClass.h
namespace Example
{
class SomeClass
{
...
SomeClass someFunction();
...
};
}
// SomeClass.cpp
Example::SomeClass Example::SomeClass::SomeFunction()
{
...
}
使用命名空间示例添加"会不会有任何后果;"在SomeClass.h中的命名空间之前,无需添加"示例::"范围运算符到Someclass.cpp文件中的东西?即使没有连续性,这会被认为是不良的编码实践吗?
改变如下:
// SomeClass.h
using namespace Example;
namespace Example
{
class SomeClass
{
...
SomeClass someFunction();
...
};
}
// SomeClass.cpp
SomeClass SomeClass::SomeFunction()
{
...
}
答案 0 :(得分:1)
不,请不要将using namespace ...;
放在全球范围内。你可以这样做:
<强> SomeClass.h 强>
// using namespace Example; // never here please
namespace Example
{
using namespace OtherExample; // this is okay (not global)
class SomeClass
{
...
SomeClass someFunction();
...
};
}
<强> SomeClass.cpp 强>
namespace Example // same as in .h
{
using namespace OtherExample; // this is okay (not global)
SomeClass SomeClass::SomeFunction()
{
...
}
}
我还建议使用std::
到永远不会使用using namespace std;
等潜在的巨大命名空间,即使在你自己的命名空间内也是如此,因为它们只是拖入太多常见的符号名称。 / p>