gpt4 book ai didi

c++ - 如何让派生类定义数据结构

转载 作者:行者123 更新时间:2023-11-28 07:16:55 25 4
gpt4 key购买 nike

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

每种类型的拼图都继承自 Puzzle 类(虚拟)。

像这样

Jump_peg::Puzzle 类

解谜器(使用模板编写)尝试解谜的每一步以及下一步尝试直到得到答案。

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

我如何在拼图(虚拟类)中使用“state”,以便其所有派生类都定义单独的“step”数据结构?

最佳答案

创建一个具有基础拼图类所需接口(interface)的状态类。例如说你需要能够复制状态

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

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

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

};

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

关于c++ - 如何让派生类定义数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20085323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com