c++ - 如何访问许多类,所有类都派生自基类

标签 c++ oop class inheritance polymorphism

我有一个 Figure 类及其派生类 King、Queen、Rook、Bishop、Pawn 等。此外,还有一个 Field 类,它模拟国际象棋领域的特征。

现在,我的所有派生类,即 King、Queen、Rook 等,都需要访问类 Field 中保存的私有(private)信息。我怎样才能做到这一点,而不是在类 Field 中手动编写:friend class King; friend 类皇后;... ?

有没有一种方法可以同时为类 Field 提供对所有这些类的访问?

最佳答案

我猜你的派生“图形”类(King、Queen、Rook 等)需要访问私有(private) Field 数据才能移动它们自己?

理想情况下,我认为 Figure 类应该公开某种使用某种数据结构来描述其运动特征的公共(public)方法,并允许 Field 使用该公共(public)方法来操作其内部私有(private)数据。每个派生类都应提供自己的实现,以便它们可以返回描述其运动的正确数据结构。

或者,如果您必须提供好友访问权限,我认为您可以尝试使用friend class Figure,然后在 Figure 类上公开protected 方法以供您使用允许他们操纵该数据的派生类。

关于c++ - 如何访问许多类,所有类都派生自基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8475696/

相关文章:

c++ - 如何获得鼠标点击的位置(以 x-y 坐标像素为单位)?

c++ - 在 C++ 中传递 SDL 对象的最佳方式

c++ - WORD 的 cmpxchg 比 BYTE 快

c++ - 如何构建用于分发的 SDL C++ 程序?

python - 在 Python 中向类中的函数发送参数列表的最佳方法是什么?

scala - 使用字段覆盖无参数方法时出现空指针异常

java - 非静态方法调用,无需在 onCreate() 内创建对象

c++ - 多态性:从基类数组访问派生类元素

python - 使用类将整数列出为字符串

node.js - 测试模块中的 node.js 类