在类之间共享私有数据和方法
Sharing private data and methods between classes
我有一堆用于特定功能的类。用户代码应该只实例化其中一个类,因为其他类都是"帮助者"类。但是,这些帮助程序类确实公开了用户代码可消耗的有用信息。
因此,我可以使用辅助类的构造函数,使其只能从主类访问。
同样,让方法和数据只能从适当的类访问,而不能从"用户代码"访问也是有用的。
到目前为止我想到的解决方案:
将功能的所有类放在一个文件中,并使用"static"创建仅该文件本地的变量。这将起作用,因为只有一个主类和所有"helper"类的实例,但这似乎不是一个"好"的解决方案。
让"辅助类"成为主要类的朋友。这也会起作用,但也会让主类访问助手类中的所有私有数据,这并不理想。
从虚拟基类继承:认为这可能是最好的解决方案。通过"受保护"共享数据,私有数据保持私有,公共数据公开。这个理论还没有突破任何漏洞。需要考虑性能方面,因为这是一个时钟速度为72Mhz的嵌入式系统。
使用组合。
继承的类应该只继承功能而不继承状态。受保护的成员/函数可能会将状态逻辑划分为两个单元。我会说使用组合,并通过公共函数访问功能。
重新定义你的类永远不会对你永远不认识的用户有好处,所以我想说不要限制你自己。
相关文章:
- 通过JNI传递数据数组的最快方法是什么
- 如何使用curlpp通过POST方法上传文件和json数据
- 有哪些有效的方法可以消除一组 100 万个字符串>重复数据?
- 拥有映射的现代方法,该映射可以指向或引用已在堆栈上分配的不同类型的数据
- 将线程中的数据存储到全局容器的最佳方法?
- 将复杂的非基元C++数据类型转换为 Erlang/Elixir 格式,以使用 NIF 导出方法
- 在C++中查找像素 RGB 数据的最快方法是什么?
- 构造智能点数据类型以及普通数据类型的通用方法
- 将传入的网络"char*"数据转换为"uint8_t"并返回的安全方法是什么?
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?
- 在 c++ 中解析数据包数据的最佳方法是什么?
- 处理编译器关于可能丢失数据的警告的最优雅方法是什么
- 创建异构顶点数据数组的可移植方法
- 使用 memcpy 将矢量数据复制到 wstring 的正确方法
- 在 std::vector<无符号字符中存储任意数据的方法>
- 在C++事务之间存储大量字符数据的有效方法
- 学习数据结构和算法的简单方法
- C++中的多维数据集:从 std::vector 的 2D 数据到 std::vector 的 2D 网格的最干净方法?
- C++ 使用派生类方法更改基类数据成员
- 调试数据方法 Q抽象表模型