在命名空间之外隐藏类成员
Hide class members outside namespace
我有一个类的集合,这些类具有类似节点的关系。由于这个原因,我需要访问一些父/子函数,否则我想远离最终用户,因为它们只是混乱了建议的方法列表,没有意义,并且在他们自己的"生态系统"之外使用时破坏了事情。
我想如果他们都继承相同的基类与虚拟占位符函数,那么我可以访问受保护的成员,但显然不是。是否有一种方法可以隐藏类成员从外部访问某个命名空间或容器类,而从内部访问?
如果你真的需要访问一些受保护的/私有的数据,你可以创建朋友类。
从维基百科: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
}
};
相关文章:
- 使用函数参数隐藏成员函数
- C++继承模板类:隐藏成员变量
- pImpl、范围和隐藏数据成员
- 有选择地隐藏类成员的成员
- 共享类时如何隐藏成员功能文件
- 隐藏的成员变量不应在仅允许const访问的基类中突变,以便保留分配运算符
- 在继承的类构造函数中使用隐藏成员
- 视觉C++:即使使用关键字,参数声明也会隐藏类成员"this"
- c 中的名称隐藏式成员功能:良好实践
- C 如何使用隐藏的默认构造函数初始化成员
- 隐藏PIMPL-Objects拥有的成员的实现
- 成员模板模板参数的隐藏
- 编译器不应该对派生类中隐藏的基本结构的成员变量发出警告吗?
- 是否应隐藏所有数据成员
- 隐藏C++成员函数的原因
- VS2012 - 类界面设计:私有成员函数定位/隐藏
- 有关隐藏超类成员的问题
- 如何在不授予私有成员访问权限的情况下隐藏 C++ 中的 STL 函子结构
- decltype和隐藏外部名称的类成员名称之间的交互
- C++类成员隐藏规则:设计问题