C++ 如何授予对多个类的访问权限,这些类都是从基类派生的
我有一个类图,和它的派生类,国王,王后,车,主教,兵,等等。还有一个类场,它模拟了一个象棋场的特征 现在,我的所有派生类,即King、Queen、Rook等,都需要访问类字段中的私有信息。我怎样才能做到这一点,而不是在类字段中手动编写:friend class King;朋友班女王C++ 如何授予对多个类的访问权限,这些类都是从基类派生的,c++,oop,class,inheritance,polymorphism,C++,Oop,Class,Inheritance,Polymorphism,我有一个类图,和它的派生类,国王,王后,车,主教,兵,等等。还有一个类场,它模拟了一个象棋场的特征 现在,我的所有派生类,即King、Queen、Rook等,都需要访问类字段中的私有信息。我怎样才能做到这一点,而不是在类字段中手动编写:friend class King;朋友班女王 有没有一种方法可以一次访问类字段中的所有类?重构类,使这些片段不需要访问电路板 重构类,使这些片段不需要访问电路板 我猜您的衍生人物类King、Queen、Rook等需要访问私有字段数据才能移动自身 理想情况下,我认
有没有一种方法可以一次访问类字段中的所有类?重构类,使这些片段不需要访问电路板 重构类,使这些片段不需要访问电路板 我猜您的衍生人物类King、Queen、Rook等需要访问私有字段数据才能移动自身 理想情况下,我认为Figure类应该公开某种公共方法,该方法使用某种数据结构来描述其移动特征,并允许字段使用该公共方法来操作其内部私有数据。每个派生类都应该提供自己的实现,以便返回描述其移动的正确数据结构
或者,如果您必须提供friend访问,我认为您可能可以尝试使用friend类Figure,然后在Figure类上公开受保护的方法,供派生类使用,从而允许它们操作该数据。我猜您的派生Figure类King、Queen、Rook、,等。是否需要访问专用字段数据才能移动自身 理想情况下,我认为Figure类应该公开某种公共方法,该方法使用某种数据结构来描述其移动特征,并允许字段使用该公共方法来操作其内部私有数据。每个派生类都应该提供自己的实现,以便返回描述其移动的正确数据结构 或者,如果您必须提供friend访问,我认为您可能可以尝试使用friend类Figure,然后在Figure类上公开受保护的方法,供派生类使用,从而允许它们操作该数据。考虑为什么Figure子类需要访问字段成员。可能是因为在执行移动时,您想检查一个字段是否已被另一个图形占用
如果是这样,考虑把这个逻辑移动到一个专用的类,比如移动。例如,移动可以包含源字段和目标字段。然后,您可以使用类似于Game::apply Move方法的soemthing,该方法将移动应用于修改游戏状态的游戏。在这种情况下,只有Move类需要访问字段成员
这只是一个例子;总体思路是首先找出为什么所有这些图形子类都需要访问字段,然后将该部分分解为一个公共类。考虑为什么图形子类需要访问字段成员。可能是因为在执行移动时,您想检查一个字段是否已被另一个图形占用如果是这样,考虑把这个逻辑移动到一个专用的类,比如移动。例如,移动可以包含源字段和目标字段。然后,您可以使用类似于Game::apply Move方法的soemthing,该方法将移动应用于修改游戏状态的游戏。在这种情况下,只有Move类需要访问字段成员
这只是一个例子;总体思路是首先找出为什么所有这些图形子类都需要访问字段,然后将该部分分解为一个公共类。为什么它们需要访问私有数据?从设计的角度来看,这听起来非常错误。我认为一个字段可以容纳一个片段,但片段不应该访问董事会的字段。为什么他们需要访问私有数据?从设计的角度来看,这听起来非常错误。我认为一个字段可以容纳一个片段,但是一个片段不应该访问电路板的字段。