[英]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.