[英]May I declare “using namespace” inside a C++ class?
假设有一个 C++ 类。 并且有一个命名空间应该只在我的类中可见。 为此该怎么办?
class SomeClass
{
using namespace SomeSpace;
public:
void Method1();
void Method2();
void Method3();
};
namespace SomeSpace
{
/*some code*/
};
using namespace X;
被称为using 指令,它只能出现在命名空间和函数范围内,而不能出现在类范围内。 所以你想要做的在 C++ 中是不可能的。 您能做的最好的事情是在该类的命名空间范围内编写 using 指令,这可能是不可取的。
不过,仔细想想,分析你的话,
假设有一个 C++ 类。 并且有一个命名空间应该只在我的类中可见。 为此该怎么办?
我建议类似以下内容,我不确定这是您想要的。
class A
{
public:
void Method1();
void Method2();
void Method3();
private:
class B
{
//public static functions here, instead of namespace-scope
// freestanding functions.
//these functions will be accessible from class A(and its friends, if any)
//because B is private to A
};
};
不,但你可以这样做:
namespace SomeSpace
{
/*some code*/
};
using namespace SomeSpace;
class SomeClass
{
public:
void Method1();
void Method2();
void Method3();
};
虽然不建议在头文件中应用 using 命名空间指令,但通常被认为是一种糟糕的风格。 可以放入你的类的源文件 (.cpp)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.