gpt4 book ai didi

c++ - 如何限制类在声明它的 namespace 之外的可见性?

转载 作者:太空宇宙 更新时间:2023-11-04 16:28:21 24 4
gpt4 key购买 nike

我在 C++ 中有一个命名空间,其中包含 5 个类。他们都有 public 访问修饰符。其中,2 个类是 static 类。

我想限制这些类在声明它们的命名空间之外可见。

所以,就像在另一个命名空间中一样,如果我导入这个命名空间,那么这两个类应该不可用。

最佳答案

C++ 中没有静态类。如果静态类是指代码中其他类使用的辅助类,而不是客户端代码使用的辅助类,那么您可以使用未命名的命名空间,并在其中定义辅助类。

namespace somespace
{
namespace //it is unnamed namespace
{
class helper
{
//define it here
};
}
class A
{
helper m_helper;
};
}

Boost 还使用了另一种技术。它在名为 details 的命名空间中定义了所有帮助程序类。

namespace somespace
{
namespace details //it is details namespace
{
class helper
{
//define it here
};
}
class A
{
details::helper m_helper; //use fully-qualified name
};
}

关于c++ - 如何限制类在声明它的 namespace 之外的可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9858754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com