隐藏命名空间外的类成员

时间:2015-09-27 17:39:55

标签: c++

我有一组具有节点关系的类。因此,我需要访问一些父母/孩子的功能,否则我们要远离最终用户,因为他们只是混乱了建议的方法列表,没有意义,并且当他们从外面使用时打破了非常糟糕的事情自己的“生态系统”。

我想如果他们都使用虚拟占位符函数继承了相同的基类,那么我可以访问受保护的成员,但显然不是。有没有办法在可以从内部访问某个名称空间或容器类时隐藏类成员?

1 个答案:

答案 0 :(得分:3)

如果你真的必须访问某些受保护/私人数据,你可以成为朋友类。

来自Wikipedia

class B {
    friend class A; // A is a friend of B

private:
    int i;
};

class A {
public: 
    A(B& b) {
        b.i = 0; // legal access due to friendship
    }
};