问题标签 [cyclic-reference]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
887 浏览

c++ - 避免由 C++ 包含头文件引起的循环引用

我有 3 个类:A、B 和 C。C#include由 B 编辑,B#includ由 A 编辑。在 C 类中,我为按钮定义了一个处理程序,当按下按钮时,C 将PostMessage指向对象 A。如果我在C中包含A,我会有一个循环引用,那么我应该怎么做才能避免这个循环引用?

编辑:所有包含都在实现文件中。

0 投票
0 回答
156 浏览

c# - 使用循环引用链进行对象克隆

我正在内存中的图形上运行一些操作,这些操作会修改图形本身。我需要多次重复这些操作,随后的重复必须在图形的新副本上工作。由于图表是通过解析文件生成的,我真的不想每次重复都花时间重新解析文件,所以我走上了克隆原始图表的路线。

我的node,edgegraph类型都在实现ICloneable,但是我有一个循环引用链的问题。

Node存储Edge来自它的定向 s 的列表。Edge存储重量和Node它指向的。当两个节点共享一条双向边时,StackOverflowException当我尝试克隆任一节点时会得到一个,因为克隆任一节点的边列表总是意味着克隆另一个节点。

为了克隆的目的,解决这个循环引用的最佳方法是什么?

0 投票
2 回答
1336 浏览

haskell - haskell中具有循环依赖的数据结构

我正在尝试使用parsec库在haskell中实现简单的解析器(用于学习目的)。所以我写了一堆数据结构和相关函数,如下所示:

它工作正常。现在我想把这些东西分成两个模块来分开FunctionBodyStatement数据结构(因为可读性问题)。但我不能!原因是 和 之间的循环SourceElement依赖FunctionBody

那么,有没有办法解决这个问题呢?

0 投票
4 回答
332 浏览

c# - 为什么 C# 中的类没有循环布局问题?

原因:

'Unit' 类型的结构成员 'Unit.u' 在结构布局中导致循环。

编译。我理解我认为的问题。引用一个Unit对象时会形成一个无限循环,因为它必须初始化另一个成员Unit等等。但是为什么编译器只限制问题structs呢?问题不是也一直存在class吗?我错过了什么吗?

0 投票
1 回答
78 浏览

iphone - 如何避免在Objective C中循环调用?

我猜标题本身就足以解决我的问题。但是我将在这里进一步解释,考虑我有两个视图控制器 A 和 B。A 是基础并且它正在推动 B,在一种情况下,我希望在视图 (B) 中单击一个按钮时从 B 提示 A。如果我有那个实例,目标 C 允许直接调用 A 视图。我认为这样做不是一个好习惯。这种情况应该怎么处理。。

谢谢你的建议。

0 投票
1 回答
457 浏览

c# - 具有“自创”属性的对象的自定义 JSON 序列化以无限循环结束

在我正在处理的项目(在 C# 中)中,我必须使用还包含序列化对象方法的 JSON 表示。这就是我必须实现自己的序列化程序的原因。序列化器通过反射非常简单地实现。我的问题是它还必须能够处理具有与原始对象相同类型的“自创”属性的对象。

例子:

每次我迭代 Properties 时,都会创建一个新对象 ( a ),这样序列化器就会以无限递归结束。

知道如何避免这种情况吗?任何建议表示赞赏。

0 投票
3 回答
21614 浏览

c++ - C ++错误:'struct ...的前向声明?

周期性包容问题

我转发在另一个类的标题中声明其中一个类,以尝试解决它们的循环包含问题。这是我的两个文件:

第一个文件(Parameter.h):

第二个文件(Expression.h):

如您所见,我在 Parameter.h 中转发声明 Expression,但仍然收到以下两个错误:

“结构表达式”的前向声明

不完整类型“结构表达式”的无效使用

我看了几个以前发布的问题,但仍然无法解决这个问题。谢谢。

0 投票
2 回答
180 浏览

c++ - 圆形模板参考结构

我有一个关于循环模板引用的问题。我想使用类节点和类边缘制作一棵树,如下所示;

我发现我无法声明图形类 ex:

如何重新定义类的结构?

0 投票
1 回答
1856 浏览

forward-declaration - 在 MongoEngine 中使用 reverse_delete_rule 时如何拥有循环或前向 ReferenceField?

此代码炸弹:

继承人例外:

删除reverse_delete_rule修复问题,但我想有这个规则。

我试过这个,它有效,但它看起来真的很垃圾,我担心可能会有不好的副作用(到目前为止,我还没有看到任何副作用):

有任何想法吗?这不应该被视为 MongoEngine 中的错误吗?

0 投票
4 回答
182 浏览

c++ - 试图解决我的双端队列类和树类之间的循环引用错误

谁能帮我解决我在这里遇到的循环引用错误。

我创建了自己的类,deque该类由breadthFirst.FibTree

以下是单独的 Header 和 CPP 文件中的亮点。文件中存在无效使用不完整类型前向声明错误的问题FibTree。我在下面的代码行中标记了这些错误。

双端队列

纤维树

纤维树.cpp

主文件

我在这里读过类似的帖子,在我的情况下,应该包含完整的声明dequeList,所以我#include "deque.h"在前向声明的上方添加class deque.h"fibtree.h;但这向deque.h类抛出了 16 个编译错误,例如这三个错误:'FibTree' has not been declared against FibTree::Node* data; inclass dequeNode {...`

任何人都可以在这里强调我可能会出错的地方吗?

谢谢,亚历克斯