C++ 中的 java "package private" 等价物是什么?

What is the java "package private" equivalent in C++?

C++ 中的 java "package private" 等价物是什么? Java 包隐私功能(在同一包中只有 类 可见)在提供 API 时很有用。

C++ 是否有类似的功能(除了将其他 类 声明为 "friend"s 之外)? 详细说明, 例如假设 A.h 和 B.h 在同一个包中(即 API lib) 文件:A.h

class A
{
public :
void doA();

private : 
 int m_valueA;
};

文件:B.h

class B
{
public : 
void doB()

private:
int m_valueB;

}

我要的是,

public 可见性:仅 A::doA() 和 B::doB()

包内(即 API lib):A 应该能够访问 B::m_valueB,B 应该能够访问 A::m_valueA。 没有让彼此 "friend" 类.

c++ 没有 java 中的包。但它确实有命名空间,但命名空间就是一个 namespace。所以这是一个不同的野兽。

某种程度上的模拟在某些情况下可能是内部 类(类 在其他 类 中)- 因为内部 类 被视为成员。

除此之外,还有头文件和实现(.cpp 文件)——从这个意义上说,你有单元或模块来控制实际可见的内容(不仅是私有的,而且是完全隐藏的——特别是如果放入匿名。namespace)。这个概念涵盖了单个 .h 文件和 .cpp 文件或整个 projects/libs/dlls 更像是一个完整的包(并且可以选择 API 的哪些部分通过获取 'shown'在各自的头文件中)。