隐藏类名称空间外的成员
问题描述:
我有一个类节点类似关系的类的集合。由于这个原因,我需要访问一些父母/孩子的功能,否则我想避开最终用户,因为他们只是混淆了建议的方法列表,没有任何意义,并且从外部使用时打破了非常糟糕的事情拥有“生态系统”。隐藏类名称空间外的成员
我想如果他们都会继承与虚拟占位符函数相同的基类,那么我可以访问受保护的成员,但显然不是。有没有一种方法可以隐藏类成员在特定名称空间或容器类之外访问,同时可以从内部访问?
答
如果您确实需要访问一些受保护/隐私数据,您可以创建好友类。
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
}
};
让他们私人和授予友谊必要,也许? –
当您的设计选择几乎完全受某些IDE“建议的方法列表”中显示的内容影响时,我认为这是一个大问题。叹! –