c++ - C++中没有指针的循环引用

标签 c++ pointers circular-reference

有没有一种方法可以不使用指针来定义循环引用?

我需要这样的东西:

struct A;
struct B {
    A a;
};

struct A {
    B b;
};

谢谢!

最佳答案

您可以改用引用

struct A;
struct B {
  A& a;
};

struct A {
  B b;
};

但是不,如果没有某种程度的间接寻址,就不可能创建循环引用。您的示例所做的甚至不是创建循环引用,而是试图创建递归定义。结果将是一个无限大的结构,因此是不合法的。

关于c++ - C++中没有指针的循环引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1329223/

相关文章:

c# - 同一程序集中的循环引用是一件坏事吗?

javascript - 尾递归reduce函数返回[..., [Circular] ]

c++ - 如何使 2 个玩家的随机骰子掷骰不同? (C++)

c++ - 无法在 makefile 中链接 opengl 库

c - 将另一种类型传递给采用 void 指针参数的函数

c - 如何测试 FILE*(指向结构的指针)(如果 == NULL)?

c++ - 如何将 size_t 类型的指针转​​换为 enum 的指针?

c++ - 深度优先搜索树边分类

C++ 运算符重载 - 我实际上返回什么操作数类型?

Facebook 调试器在某些网站上报告 "Circular redirect path detected"(301)