gpt4 book ai didi

c++ - 抽象工厂类中的细微设计错误

转载 作者:行者123 更新时间:2023-11-28 02:18:25 24 4
gpt4 key购买 nike

class Animal
{
public:
typedef enum{
CAT,
DOG,
RABBIT,
EAGLE,
FOX
} AnimalType;

static Animal* Create(AnimalType type);

~Animal();

virtual void PlayWith(Animal* other)=0;
virtual void Eat(Animal* other) = 0;

protected:
Animal();
};

我被告知其中一行存在编程错误,但我找不到细微的错误。谁能解决这个问题?

最佳答案

您正在设计一个抽象基类,因此您将通过类型为 Animal* 的基类指针来操作指向具体派生类(Cat*、Dog*、Rabbit*)实例的指针。对于此类多态层次结构,您的基类析构函数必须始终是虚拟的。

virtual ~Animal();

关于c++ - 抽象工厂类中的细微设计错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33322377/

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