如何使派生类定义数据结构

how to make derived class to define data structure

本文关键字:定义 数据结构 派生 何使      更新时间:2023-10-16

我正在编写一个程序来解决难题

每种类型的谜题都继承自谜题类(虚拟)。

像这个

class Jump_peg::谜题

解谜者(使用模板编写)尝试解谜的每一步,以及那些试着直到得到答案。

但每个谜题都有不同的"步骤"数据结构

我如何在谜题(虚拟类)中使用"state",以便它的所有派生类在那里定义单独的"step"数据结构?

创建一个具有基本谜题类所需接口的状态类。例如,说你需要能够复制状态

class state {
  public:
  virtual state *copy() = 0;
  virtual ~state();
};

然后创建一个抽象方法来构造益智类中的状态

class puzzle {
virtual state *initial_state(void) = 0;
  virtual step(void) = 0;

};

在特定类型的谜题的特定谜题类中,为该类型的谜题定义一个新的状态类,并创建将返回该类型状态并可以从基类调用的方法。您可能还需要迭代器来了解下一步可能的步骤,并了解您的解决方案有多好/有多接近。