C++ 在类中使用名称空间foo是否可以接受?

C++ 在类中使用名称空间foo是否可以接受?,c++,namespaces,using-directives,C++,Namespaces,Using Directives,我知道我们不应该在头文件中添加这样的代码: using namespace std; 但是这个呢: namespace foo { class A { public: void add() { using namespace std; // do some work here } } } 据我所知,std只被带到函数add中,而不带到名称空间中的任何其他类

我知道我们不应该在头文件中添加这样的代码:

using namespace std;
但是这个呢:

namespace foo
{
    class A
    {
     public:
        void add()
        {
             using namespace std;
             // do some work here 
         }
    }
}
据我所知,std只被带到函数add中,而不带到名称空间中的任何其他类中


还是不能接受吗?为什么?

不,编译器会告诉你的。在任何情况下,如果
类A
位于命名空间
foo
中,它会自动在
foo
中查找名称。您可以将其添加到单个成员函数中,但不能添加到整个类中。@Boperson:可以这样做吗?添加到单个成员函数?为什么不问这个问题,而不是问不编译的代码是否可以接受?@mans-我很少这样做,但这是允许的。你也应该考虑如果在指令中键入20个字符实际上会为你节省任何东西。代码>标准::只有5个字符。