gpt4 book ai didi

c++ - 工厂方法和循环依赖

转载 作者:太空宇宙 更新时间:2023-11-04 15:10:24 27 4
gpt4 key购买 nike

编辑:谢谢大家,现在我明白了我的错误。

如果我没记错的话,由于其在工厂方法中的性质,存在循环依赖:

基类需要知道子类,因为它创建子类,而子类需要知道基类。具有循环依赖性是一种糟糕的编程习惯,不是吗?

实际上我实现了一个工厂,我有上面的问题,即使我添加了

#ifndef MYCLASS_H
#define MYCLASS_H
#endif

我还在努力

Compiler Error C2504 'class' : base class undefined

当我从基类 header 中删除子类包含时,此错误消失。

最佳答案

解决方案一:不要在基类头中#include派生类头,只在基类cpp中。工厂方法的声明不应使用返回的具体类的类型,只能使用基类型。

解决方案 2:使用单独的工厂类(或单独类中的工厂方法)来创建对象。那么循环依赖就完全消除了。这是首选方式。

关于c++ - 工厂方法和循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2781323/

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