我正在使用位板创建一个国际象棋引擎,我有两个类:class Board
和class Evaluation
。
Board
类中有许多变量要传递给Evaluation
类中的函数。该课程评估理事会的职位并返回一个数字。我想将所有的位板传递给这个课程。它们的数量大约为15,甚至可能会增加。
我将在Evaluation
类中创建Board
类的对象,并从Board
类创建我将调用boardEvaluation
函数的对象。我希望通过这个功能来传递这个功能。
这样做的一种方法是在我想要传递变量的函数中简单地接受15个参数。但是,我不想使用这种方法,因为它听起来不吸引人。
还有其他方法可以将这么多变量从一个类传递到另一个类中的函数吗?
答案 0 :(得分:3)
创建另一个类BoardData
并在Board
和Evaluation
中使用它。 BoardData
的责任在于存储您的15个变量 - 并且可能会对它们提供一些基本操作。通过这种方式,您的设计将得到简化,而不会出现循环依赖性。
答案 1 :(得分:1)
以下是步骤:
boardEvaluation
函数可以Board*
作为其参数friend
类的Board
函数。 Evaluation.h
头文件中向前声明Board
类Board
类的15个私有成员变量。话虽如此,当设计到达即将使用friend
时,您可能需要重新考虑原始设计和两个类之间的关系。
在您的情况下,如果可能,您可能需要将boardEvaluation
移至Board
课程。