我对访问权限有疑问。
我正在用C ++(面向对象)编写一个Game Of Life版本 我需要帮助的部分有三个类:
我可以将SetCell设为私有,将Manager设为友好的存储类,但这也意味着Manager可以直接访问数组,这是我不想要的。 简而言之:
一个类有一个Array和两个方法。每个方法应该可以访问不同的类,而不允许任何类访问该数组 我希望这是可以理解的,不会被标记为重复。
答案 0 :(得分:0)
Storage
和Manager
类几乎总是一个坏主意。您的设计导致编码问题。 Neighbourfinder
是另一个遵循“动词”模式的类,也可能是一个同样糟糕的主意。
相反,您想要的主要类是Board
。它知道董事会规则,这就是为什么它被称为Board
。因此,Board::SetCell
是private
。 Board::nextRound()
方法可以是公开的。
我还可以看到Board::countLiveNeighbours
方法,但也可以是private
,因为仅在nextRound
的实现中需要这样做。