gpt4 book ai didi

c++ - 在类之间共享私有(private)数据和方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:47:17 24 4
gpt4 key购买 nike

我有一堆针对特定功能的类。只有一个类应该由用户代码实例化,因为其他类是“帮助”类。但是,这些帮助程序类确实公开了用户代码可以使用的有用信息。

所以我可以将辅助类的构造函数设置为只能从主类访问。

同样,让方法和数据只能从适当的类访问,而不是从“用户代码”访问,这将很有用。

目前想到的解决方案:

将一个功能的所有类放入一个文件中,并使用“static”创建仅对该文件本地的变量。这会起作用,因为只有一个主类和所有“帮助”类的实例,但它似乎不是一个“好的”解决方案。

让“辅助类”成为主类的 friend 。这也可行,但也会让主类访问辅助类中的所有私有(private)数据,这并不理想。

从虚拟基类继承:认为这可能是最好的解决方案。通过“ protected ”共享数据,私有(private)数据保持私有(private),公共(public)数据暴露。还没有在这个理论中打出任何漏洞。需要考虑性能方面,因为这是一个时钟速度为 72Mhz 的嵌入式系统。

最佳答案

使用组合

继承类应该只继承功能而不继承状态。 protected 成员/函数可能会将状态逻辑分为两个单元。我会说使用组合,并通过公共(public)函数访问功能。

Regrading 你的类(class)永远不会对你不认识的用户有好处,所以我想说不要限制自己。

关于c++ - 在类之间共享私有(private)数据和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20469411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com