gpt4 book ai didi

c++ - C++的具体设计案例,嵌入​​式AVR项目

转载 作者:行者123 更新时间:2023-11-28 08:15:58 24 4
gpt4 key购买 nike

我在下图中描绘了一个设计问题。有一个类 Owner 持有指向类 SwitcherBase 的指针。 Switcher 有一个方法,比如说 Switcher::switch(Base* base) 其目标是改变 Owner::Base 的实现从 Child1Child2 或返回(如果需要)。我不想在 Owner 中实现此功能,因为它已经足够复杂了。变量 Switcher* Owner::switcherBase* Owner::baseOwner 中是私有(private)的。

这有设计模式吗?我应该如何实现它?如果编写一些简单的代码来实现它,但我想我在访问控制方面遇到了问题,因为 switcherbase 成员变量被声明为私有(private)。我无法确定,因为我无法逐步调试系统(这是一个嵌入式项目)。我也在尝试使用 linux-gcc 来实现它以测试问题所在,但也许有一个我没有想到的简单解决方案,因此这里有问题。我不想使用 friend 关键字,因为我觉得使用它是糟糕设计的标志。 enter image description here

最佳答案

为什么不通过切换器访问基地。这样,切换器可以更改基础,而所有者只会看到自己正在访问切换器。

否则,让切换器调用所有者中的 setbase(Base*) 方法。然后可以在切换器中处理切换逻辑,但对字段的访问权限在它所属的所有者中。

关于c++ - C++的具体设计案例,嵌入​​式AVR项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7783645/

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