gpt4 book ai didi

C++ 结构相互依赖

转载 作者:行者123 更新时间:2023-11-30 00:41:25 25 4
gpt4 key购买 nike

你好,我在同一个头文件中声明了需要彼此的结构。

struct A; // ignored by the compiler
struct B{
A _iNeedA; //Compiler error Here
};

struct A {
B _iNeedB;
};

这个工作正常

class A;
class B{
A _iNeedA;
};

class A {
B _iNeedB;
};

// everything is good

非常感谢!

最佳答案

这行不通:A 包含 B 包含 A 包含 B 包含...。停在哪里?

你所能做的就是使用指针来模拟循环依赖:

class A;

class B {
A* _iNeedA;
};

class A {
B* _iNeedB;
};

现在这些类不包含彼此,只是相互引用。

此外,您需要注意,您不能使用尚未定义的东西:在上面的代码中,您已经声明 A 在定义 B 之前。因此,在 B 中声明指向 A指针 是可以的。但是您还不能在定义它之前使用A

关于C++ 结构相互依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3708469/

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