C ++中的Java“私有包”等效项是什么? 提供API时,Java包隐私功能(只有同一包中的类才具有可见性)非常有用。
C ++是否有类似功能(除了将其他类声明为“朋友”之外)? 详细说明 例如假设A.h和B.h在同一包中(即API库) 文件:A.h
class A
{
public :
void doA();
private :
int m_valueA;
};
文件:B.h
class B
{
public :
void doB()
private:
int m_valueB;
}
我想要的是
公开可见性:仅A :: doA()和B :: doB()
在包中(即API库):A应该能够访问B :: m_valueB,而B应该能够访问A :: m_valueA。 彼此之间没有“朋友”课程。
答案 0 :(得分:1)
c ++没有Java中的软件包。但是它确实有名称空间,但是名称空间就是namespace
。所以它是另一种野兽。
在某些情况下,某种模拟可能是内部类(其他类中的类)-因为内部类被视为成员。
此外,还有头文件和实现(.cpp文件)-从这个意义上讲,您具有控制实际可见内容的单元或模块(不仅是私有的,而且是完全隐藏的-尤其是放在anon中)。 namespace
)。这个概念仅涵盖单个.h文件和.cpp文件,或者涵盖整个项目/ libs / dll,它们更像是一个完整的程序包(并且可以选择通过在各自的头文件中“显示”的内容来公开API的哪些部分)